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