实体框架与必需的流畅 API 到数据注释映射



我正在尝试在我的代码第一个实体框架项目中执行数据注释方法。

以下是我的实体:(显示有限的字段(

public partial class CUSTOMEREXT
{
[StringLength(36)]
public string ID { get; set; }
public virtual CUSTOMER CUSTOMER { get; set; }
}
public partial class CUSTOMER
{
[StringLength(36)]
public string ID { get; set; }
public virtual CUSTOMEREXT CUSTOMEREXT { get; set; }
}

Fluent API:(这有效(

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CUSTOMER>()
.Property(e => e.ID)
.IsFixedLength()
.IsUnicode(false);
modelBuilder.Entity<CUSTOMER>()
.HasOptional(e => e.CUSTOMEREXT)
.WithRequired(e => e.CUSTOMER);
modelBuilder.Entity<CUSTOMEREXT>()
.Property(e => e.ID)
.IsFixedLength()
.IsUnicode(false);      
}

动态生成模型生成器:(这不起作用(

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.AddFromAssembly(Assembly.GetAssembly(GetType())); //Current Assembly
base.OnModelCreating(modelBuilder);
}

要测试的代码:

Model1 model = new Model1();
var outp = model.Set<CUSTOMEREXT>().ToList();
var out1p = model.Set<CUSTOMER>().ToList();

错误:

无法确定 类型"OraclePOC.CUSTOMER"和"OraclePOC.CUSTOMEREXT"。校长 必须使用 关系流畅的 API 或数据注释。

通过查看此内容,我知道我必须将WithRequired转换为数据注释属性。不知道如何?

知道吗?

我能够弄清楚这一点:

添加[Required]属性:

public partial class CUSTOMEREXT
{
[StringLength(36)]
public string ID { get; set; }
[Required]
public virtual CUSTOMER CUSTOMER { get; set; }
}

最新更新