5
我遇到一些問題,實體框架和SQL數據庫。 所以我的問題是這樣的: 我的數據庫中存在具有相同屬性的兩個表,他們是在類型和長度相同,但他們沒有任何關係。沒有任何外鍵。 只要我開始與數據庫實體框架交互吐出了著名的錯誤:實體框架4.1兩個表具有相同的屬性名稱
error 0019: Each property name in a type must be unique. Property name was already defined.
我使用的方式代碼優先的方法。
這是表的級圖示之一:
[Table("bo")]
public class TbPBO
{
[Required(AllowEmptyStrings = false, ErrorMessage = "O campo de nome nao pode ser nulo")]
[MaxLength(55, ErrorMessage = "O campo de nome nao pode ter mais que 55 caracteres")]
[Column("nome", TypeName = "char", Order = 4)]
public string TbBonome { get; set; }
}
這是表的其他類表示:
[Table("bi")]
public class TbPBi
{
[Required(AllowEmptyStrings = false, ErrorMessage = "O campo nome nao pode ser nulo")]
[MaxLength(55, ErrorMessage = "O campo nome nao pode ter mais que 55 caracteres")]
[Column("nome", TypeName = "char", Order = 62)]
public string TbBinome { get; set; }
}
我已經嘗試過使用這種改變我的背景,但沒有任何運氣。
public class PHCDbContext:DbContext
{
public PHCDbContext(string connection):base(connection)
{
Database.SetInitializer<PHCDbContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TbPBO>()
.Map(mbo => { mbo.Properties(tnome => new { tnome.TbBonome }); mbo.ToTable("bo"); });
modelBuilder.Entity<TbPBi>()
.Map(mbo => { mbo.Properties(tnome => new { tnome.TbBinome }); mbo.ToTable("bi"); });
}
}
如何解決這個任何想法?還有一件事。數據庫不得以任何方式改變。我無法修改它。
幫助將不勝感激。 由於事先
請問類'TbPBO'(或'TbPBi')都稱爲屬性'nome'?它會與映射到列名'nome'的其他屬性發生衝突。另外:你使用的是什麼數據庫系統? SQL Server或MySql或...? – Slauma
抱歉。我正在使用SQL Server 2008,並且這兩個類都有一個名爲nome的屬性。就像數據庫上相應的表bi和bo一樣。他們都有一個名爲Nome的字段。並且表格bo中的字段nome中的數據在表格bi中相同。 – jonniebigodes
但是,爲什麼你那麼屬性映射'TbBonome'到列'nome'當你的類已經有一個屬性'nome'? – Slauma