我目前正在使用实体框架4.0和POCO进行自我版本的成员编制工作。
在Scotts准备就绪后 Gu blog员额一决定尽可能使用公约。
到目前为止,我有一个称为用户的班子:
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int UserId { get; set; }
[System.ComponentModel.DataAnnotations.StringLength(60)]
public string UserName { get; set; }
public string Password { get; set; }
[System.ComponentModel.DataAnnotations.ConcurrencyCheck]
public string Email { get; set; }
[System.ComponentModel.DataAnnotations.Timestamp]
public byte[] Timestamp { get; set; }
public ICollection<Role> Roles { get; set; }
}
“作用”
public class Role
{
[System.ComponentModel.DataAnnotations.Key]
public int RoleId { get; set; }
[System.ComponentModel.DataAnnotations.StringLength(50)]
public string RoleName { get; set; }
[System.ComponentModel.DataAnnotations.StringLength(300)]
public string RoleDescription { get; set; }
public ICollection<User> Users { get; set; }
}
我也照此执行《DbContext》:
public class BackboneDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
}
随后,根据斯科特建议,我设立了从RereateDatabaseIfModelChanges继承的初始继承人。
之后,我增列一些my子,如:
protected override void Seed(BackboneDbContext context)
{
var roles = new List<Role>
{
new Role
{
RoleId = 0,
RoleName = "User",
RoleDescription = "This role belong to normal users.",
}
};
roles.ForEach(r => context.Roles.Add(r));
var users = new List<User>
{
new User {UserId = 1,
UserName = "Elham",
Email = "abc@yahoo.com",
Password = "xyz",
Roles = new List<Role>
{
roles[0]
}
}
};
users.ForEach(u => context.Users.Add(u));
}
我希望这能成为现实。 如果不是的话,如果数据库进行图形改动,上述表格基本上将数据填满。
迄今为止,一切都绝对是巨大的。 我收到以下表格:
作用、作用和用户
他们都需要信息一,但问题在于我利用我的保存阶层的以下准则问询让所有美国人:
public IQueryable<User> GetAllUsers()
{
IQueryable<User> allUsers = from u in _backboneDbContext.Users select u;
return allUsers;
}
现在,如果我先检查所有用户,然后再把他们转来观察,我就会接触到我的用户,但角色却被定在纽尔。
我不知道为什么...... 任何想法? 谢谢。