gpt4 book ai didi

c# - 如何正确设置模型、POCO 类?

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:54 25 4
gpt4 key购买 nike

我对如何正确设置我的模型有点困惑。下面您将看到我的 POCO,我想知道如何自动递增 ID 以及是否有必要设置数据注释 [Key]。是否存在使 EF 识别 ID/主键的某种命名约定,或者我是否必须使用 [Key] 数据注释?

还有就是需要在子实体中设置一个[Key]数据注解吗?

    public class User
{
[Key]
public int UserId { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public DateTime Reg { get; set; }
public virtual ICollection<Stats> Stats { get; set; }
}

public class Stats
{
[Key]
public int StatId { get; set; }
public string Age { get; set; }
public string Height { get; set; }
public string Weight { get; set; }
public bool Sex { get; set; }
}

public class BodylogContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Stats> Stats { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<BodylogContext>(null);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}

最佳答案

您应该查看 Entity Framework Code First 教程以了解更多详细信息。

具体来说,针对您的情况和一些基本规则(免责声明:)我并不是要涵盖所有内容,只是一些基本规则....

  • 您可以删除 [Key] -
    如果你使用 <Entity>Id - 或者只是 Id默认做成PK。
    “FK-s”和相关的也是如此 navigation properties (除了 <Property>Id 也是按约定映射的),
    它不区分大小写。

  • 默认情况下标识 - 对于有意义的 pk 类型 - int、long... - 不适用于字符串,

  • 如果你有 more than one pk - 然后你需要用 Key 或在流畅的配置中“装饰”它,

等...

注意:您可以调整和删除conventions来自流畅的配置。
同样从 EF6 开始,您将能够为您的代码定义一个新的。

My recommendation: Turn on Migrations and look up the migrations script code (.cs file) generated file. It always has the clear description of what are keys, indexes etc. Best way to learn how your Db is actually created.

关于c# - 如何正确设置模型、POCO 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com