Raz*_*yed 2 frameworks entity entity-framework code-first
我正在尝试实现一个相对简单的概念,但看起来EF代码首先没有一个简单的方法来做到这一点.基本上我有一个地址类,它也有一个County属性.我正在映射到现有表.在某些情况下,该表有一个用于县的字段,而在其他情况下则没有.所以我只是试图忽略不适用的郡.
Fluent API允许映射到Complex Type的属性:
.Property(Function(c) c.HomeAddress.County).HasColumnName("COUNTY")
Run Code Online (Sandbox Code Playgroud)
那很棒.但显然它不允许你忽略它:
.Ignore(Function(c) c.HomeAddress.County)
Run Code Online (Sandbox Code Playgroud)
抛出错误:
表达式'p => p.Address.County'不是有效的属性表达式.表达式应该表示一个属性:C#:'t => t.MyProperty'VB.Net:'Punction(t)t.MyProperty'.
这应该在Fluent API中允许,并且应该像上面的语句一样简单.
所以按照惯例,Code首先认为它是一个属性,你得到错误:
"无效的列名'Address_County'.
这太烂了!所以我基本上坚持这个属性.我怎么忽略它?有任何想法吗?
我不想删除该属性,我无法将其添加到表中.我尝试添加注释,代码可以工作,但是在我需要它的情况下我无法映射它.
我希望有一个简单的解决方案,或者至少是一个适当的解决方案.
您可以忽略6.1.1中的复杂类型属性(不知道它何时开始获得支持)
public class MyDbContext
: DbContext
{
//...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder
.ComplexType<[complex-type-class]>()
.Ignore(x => x.[member-to-ignore]);
}
//...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2779 次 |
最近记录: |