我正在研究现有的SQL数据库。我为我的一个实体创建了一个复杂类型“Address”,我使用属性“ColumnAttribute”来定义表格中的映射。
工作正常。
现在,我想将我的复杂类型“Address”重用于另一个表。
但是,由于现有原因,列的名称是不同的。
如何在不使用继承的情况下更改此特定表的列名?或者必须创建两个类型为Address的类。
public sealed class class1
{
public Adresse Adresse{get;set;}
}
public sealed class class2
{
// Need to change all ColumnAttributes for this specific class
public Adresse Adresse{get;set;}
}
public sealed class Adresse : IAdresse
{
#region IAdresse Membres
[Column( "ADRESSE" )]
public string Adresse1 { get; set; }
[Column( "CODE_POSTAL" )]
public string CodePostal { get; set; }
[Column( "VILLE" )]
public string Ville { get; set; }
#endregion
}
感谢您的帮助。
答案 0 :(得分:0)
我没有准备好合适的测试。 假设复杂类型正如你所说的那样正常工作。
我创建了一个复杂类型“地址”....它工作正常。
尝试使用您可以覆盖的Fluent API。
public class YourDbContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
// attempt override standard name of complex property
modelBuilder.Entity<Class2>().Property(t=>t.Adresse.Adresse1).HasColumnName("BetterName");
}
}