【发布时间】:2011-06-27 09:23:12
【问题描述】:
我有这样的课:
public class Target
{
[Key]
[Column("TargetId")]
public Guid Id { get; set; }
[ForeignKey("TargetInventory")]
public Guid? TargetInventoryId { get; set; }
public virtual TargetInventory TargetInventory { get; set; }
}
在 DbContext 上只有这个:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove();
}
在数据库中,我有名为“FK_Target_TargetInventory”的 FK 和字段“TargetInventoryId”。
使用 EF 4 它可以工作,但在 4.1 上它会生成无效的字段名称“TargetInventory_Id”而不是“TargetInventoryId”。例外:
查询“GetAll”的加载操作失败。执行命令定义时发生错误。有关详细信息,请参阅内部异常。内部异常消息:列名“TargetInventory_Id”无效。
可能出了什么问题?
编辑 1
代码标签渲染不好(我想你可以理解它的意思): modelBuilder.Conventions.Remove>(); 我以前没有使用过 fluent 并且它有效,我不想在主类之外有逻辑。 现在我将尝试各种测试,因为我发现类似的代码在不同的类中工作。
【问题讨论】:
标签: c# entity-framework foreign-keys