C# 在现有表/类中添加外键ID属性(引用)

C# 在现有表/类中添加外键ID属性(引用),c#,wpf,entity-framework,C#,Wpf,Entity Framework,我正在使用实体框架CodeFirst。我已经用它们之间的引用创建了我的对象,执行了使用外键更新数据库,创建了数据库,例如: public class Order { public virtual Bill Bill { get; set; } } 实体框架使用列创建了表顺序:Bill\u Id。 现在,我必须保留我的表、行,并创建一个属性,该属性引用EntityFramework创建的该列 我试过: public class Order { [ForeignKey("Bill_Id

我正在使用实体框架CodeFirst。我已经用它们之间的引用创建了我的对象,执行了使用外键更新数据库,创建了数据库,例如:

public class Order
{
   public virtual Bill Bill { get; set; }
}
实体框架使用列创建了表顺序:Bill\u Id。 现在,我必须保留我的表、行,并创建一个属性,该属性引用EntityFramework创建的该列

我试过:

public class Order
{
   [ForeignKey("Bill_Id")]
   public virtual Bill Bill { get; set; }

   public Nullable<int> Bill_Id { get; set; } //The column is nullable
}
它给了我这个错误:

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Data.Entity.Core.Objects.DataClasses.RelatedEnd.GetOtherEndOfRelationship(IEntityWrapper wrappedEntity)
如果我将类修改为:

public class Order
{
   public virtual Bill Bill { get; set; }

   [ForeignKey("Bill")]
   public Nullable<int> Bill_Id { get; set; } //The column is nullable
}
公共类秩序
{
公共虚拟票据{get;set;}
[外汇(“法案”)]
公共可为空的Bill_Id{get;set;}//该列可为空
}
它给了我另一个错误,即无法重命名我的列

如何创建一个属性来引用Entity Framework自动创建的列外键Id,并保留行


我尝试这样做的原因是我不想再执行select来获取外键对象。我只想添加一个参考他们

在您的迁移中,我没有看到Bill\u Id的
列。你的解释有问题。/嘿@IvanStoev我粘贴了错误的迁移OK。但是我试图按照解释的步骤重现这个问题,并且
ForeignKey
方法都会创建一个空迁移。最新的EF6.1.3,如果有必要的话。好的,但是有可能创建添加引用的迁移吗?我只想让EntityFramework知道这个属性,它是他创建的列…外键引用在第一次迁移时应该已经正确创建了(当
Order
只有
Bill
属性时)。我在迁移中没有看到
Bill\u Id
列。你的解释有问题。/嘿@IvanStoev我粘贴了错误的迁移OK。但是我试图按照解释的步骤重现这个问题,并且
ForeignKey
方法都会创建一个空迁移。最新的EF6.1.3,如果有必要的话。好的,但是有可能创建添加引用的迁移吗?我只想让EntityFramework知道他创建的列的属性…外键引用应该在第一次迁移时已经正确创建(当
Order
只有
Bill
属性时)。
public class Order
{
   public virtual Bill Bill { get; set; }

   [ForeignKey("Bill")]
   public Nullable<int> Bill_Id { get; set; } //The column is nullable
}