2013-01-06 15 views
5

मुझे इकाई ढांचे और एक एसक्यूएल डेटाबेस के साथ कुछ समस्याएं आ रही हैं। इसलिए मेरी समस्या यह है: मेरे डेटाबेस में दो टेबल हैं जिनमें एक ही संपत्ति है, वे प्रकार और लंबाई में समान हैं लेकिन वे किसी भी तरह से संबंधित नहीं हैं। कोई विदेशी कुंजी नहीं।इकाई ढांचे 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"); }); 

    } 
} 

इस पर काम करने के तरीके पर कोई विचार है? एक और चीज़। डेटाबेस किसी भी तरह से बदला नहीं जाना चाहिए। मैं इसे संशोधित नहीं कर सकता।

सहायता की सराहना की जाएगी। अग्रिम धन्यवाद

+1

के लिए धन्यवाद वर्ग 'TbPBO' (या' TbPBi') एक संपत्ति 'nome' कहा जाता है करता है? यह कॉलम नाम 'नोम' में मैप किए गए अन्य गुणों के साथ संघर्ष करेगा। इसके अलावा: आप किस डेटाबेस सिस्टम का उपयोग कर रहे हैं? एसक्यूएल सर्वर या MySQL या ...? – Slauma

+0

इसके बारे में खेद है। मैं एसक्यूएल सर्वर 2008 का उपयोग कर रहा हूं। और दोनों वर्गों में नोम नामक एक संपत्ति है। डेटाबेस पर संबंधित तालिका द्वि और बो के रूप में है। दोनों में नोम नामक एक क्षेत्र है। और तालिका बो में फ़ील्ड नोम में मौजूद डेटा तालिका द्वि में समान है। – jonniebigodes

+0

लेकिन आप तो मैप करते स्तंभ के लिए संपत्ति '' TbBonome' nome' जब अपने वर्ग पहले से ही एक संपत्ति 'nome' है? – Slauma

उत्तर

0

बहुत गुगल और परीक्षण और त्रुटि के बाद धन्यवाद। मैंने ef power tools की खोज की, इसे इंस्टॉल किया और इसे मेरे डेटाबेस को इंजीनियर करने दें। मैंने प्रक्रिया को चलाने दिया। यह टेबल मैप किया। कक्षाओं और संदर्भ बनाया। और जो मैं परीक्षण कर रहा हूं उसके लिए समस्या हल हो गई है। मदद