问题 1。
我已经在代码优先中创建了一个数据库。
[Column(TypeName="datetime2")]
public DateTime RegistDate { get; set; }
这样就不会创建表。
modelBuilder.Entity<Test>().Property(f => f.RegistDate).HasColumnType("datetime2");
(在 OnModelCreating 方法中)我可以通过使用 Fluent API 来解决。
要创建列格式 datetime2,是否只有 Fluent API?
问题2。
我有一个域模型如下。
用户实体类
public class User
{
public Guid UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string UserEmail { get; set; }
public DateTime JoinDate { get; set; }
public DateTime LoginDate { get; set; }
public virtual ICollection<UsersInRole> UsersInRoles { get; set; }
}
角色实体类
public class Role
{
public Guid RoleId { get; set; }
public string RoleName { get; set; }
public DateTime CreateDate { get; set; }
public virtual ICollection<UsersInRole> UsersInRoles { get; set; }
}
UsersInRole 实体类
public class UsersInRole
{
public Guid UserId { get; set; }
public Guid RoleId { get; set; }
public DateTime SetDate { get; set; }
[ForeignKey("UserId")]
public User User { get; set; }
[ForeignKey("RoleId")]
public Role Role { get; set; }
}
这个build,会出现如下错误
One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'UsersInRole' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'UsersInRoles' is based on type 'UsersInRole' that has no keys defined.
我不想添加另一个属性 ID。
另外,我不能使用[Key] UserId,来RoleId。
有没有其他解决方案?