问题描述
我正在使用代码优先的方法并且有两个不相关的实体
[table("state")]
public class StateCodeDTO {
[Key]
[column("state_code")
string StateCode { get; set; }
[column("state_name")]
string StateName { get; set; }
}
[table("location")]
public class LocationDTO {
[Key]
[column("id")
int Id { get; set; }
[column("location_name")]
string Location_Name { get; set; }
}
我可能创建了一个查询,其中错误地包含了两个实体。我不记得我做了什么,但这是一个错误。现在我卡住了
Entity Framework
认为这两个表之间存在关系。我的上下文我有以下 DbSet:
public DbSet<LocationDTO> LocationInformation { get; set; }
public DbSet<StateCodeDTO> StateCode { get; set; }
如果我发出以下调用:
var stateDTOs = _dbContext.StateCode.ToList();
我有可怕的 Invalid column name
例外
SqlException: 无效的列名“LocationDTId”。
Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException 异常, bool breakConnection,Action wrapCloseInAction) Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection,动作 wrapCloseInAction) Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj、bool callerHasConnectionLock、bool asyncClose) Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler、SqlDataReader 数据流、 BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj,out bool dataReady)
请注意,一切正常,直到我发出无效查询,这似乎使所有内容陷入困境。我认为这与我所做的无关,我只需要一种方法来告诉 Entity Framework
这两个实体不相关。似乎它正在将 Code First
约定 ClassNameKey 应用于位置表,并认为 LocationDTOId
是状态表中的外键。这与事实大相径庭。
How can I tell Entity Framework that these entities are unrelated?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)