हाय मैं उपयोगकर्ता और भूमिका के बीच कई रिश्तों के लिए अपनी इकाई ढांचे को स्थापित करने की कोशिश कर रहा हूं।इकाई फ्रेमवर्क उपयोगकर्ता भूमिकाएं कई रिश्तों के लिए कई
चित्र के नीचे पता चलता है कि डेटाबेस में बताया गया है:
उपयोगकर्ता के लिए मॉडल है:
public class User : IEntity
{
public virtual int UserId { get; set; }
[Column(TypeName = "varchar")]
[StringLength(100)]
public virtual string UserName { get; set; }
[Column(TypeName = "varchar")]
[StringLength(100)]
public virtual string FirstName { get; set; }
[Column(TypeName = "varchar")]
[StringLength(100)]
public virtual string LastName { get; set; }
[Column(TypeName = "varchar")]
[StringLength(200)]
public virtual string EmailAddress { get; set; }
public int AreaId { get; set; }
[Column(TypeName = "varchar")]
[StringLength(64)]
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
[Column(TypeName = "varchar")]
[StringLength(64)]
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
//Navigation properties
//public virtual Role Role { get; set; }
public virtual Area Area { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
भूमिका के लिए आदर्श है:
public class Role : IEntity
{
public int RoleId { get; set; }
[Column(TypeName = "varchar")]
[StringLength(100)]
public string Name { get; set; }
[Column(TypeName = "varchar")]
[StringLength(1000)]
public string Description { get; set; }
[Column(TypeName = "varchar")]
[StringLength(64)]
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
[Column(TypeName = "varchar")]
[StringLength(64)]
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
//Navigation Properties
public ICollection<User> Users { get; set; }
}
UserRole है:
public class UserRole
{
public int UserId { get; set; }
public int RoleId { get; set; }
//Navigation properties
public virtual User User { get; set; }
public virtual Role Role { get; set; }
}
तो मैंने सोचा कि मैं इस ठीक की स्थापना की, लेकिन मेरे कोड में मैं की तरह कुछ जाना:
var roles = from r in user.Roles
select r.Name;
और यह अपने आप की त्रुटियों दे रही है गोली मारता है:
Server Error in '/' Application.
Invalid object name 'dbo.RoleUser'.
तो मैं निम्नलिखित जोड़ा संदर्भ के लिए: की
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(i => i.Roles)
.WithMany(u => u.Users);
}
हालांकि अब मैं हो रही त्रुटियों:
'/' एप्लिकेशन में सर्वर त्रुटि। अमान्य कॉलम नाम 'Role_RoleId'। अमान्य कॉलम नाम 'User_UserId'।
तो निश्चित रूप से मेरे यहां कुछ सही तरीके से स्थापित नहीं है। क्या मैं सही दिशा में मुझे इंगित कर सकता हूं?
इस मामले के बारे में कि रोल इकाई उपयोगकर्ता इकाई को नहीं जानता है? कॉन्फ़िगरेशन कोड कैसे लिखें? –