0

问题 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。

有没有其他解决方案?

4

0 回答 0