gpt4 book ai didi

entity-framework-5 - Fluent API - 一对多

转载 作者:行者123 更新时间:2023-12-03 23:20:03 25 4
gpt4 key购买 nike

我似乎无法在流畅的 API 中找到一对多的关系语法。

例如,我有两个表如下

用户

Id
Name

用户历史
Id
UserId
Date

在类(class)中,我有以下内容
public class User 
{
public int Id { get; set; }
public virtual ICollection<UserHistory> Histories { get; set; }
}

public class UserHistory
{
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
}

我尝试了以下方法,但我不确定它是否真的正确。
modelBuilder.Entity<User>()
.HasRequired(w => w.Histories)
.WithMany();

modelBuilder.Entity<User>()
.HasMany(f => f.Histories)
.WithOptional()
.HasForeignKey(f => f.UserId);

一对多关系的正确语法是什么?

从技术上讲,我可以通过添加一个新表将其分解为多对多,但我不想引入另一个表。

最佳答案

在您的模型中,User实体 有很多 Histories 每个历史都有一个 必填 User和关系一个 外键 调用UserId :

modelBuilder.Entity<User>()
.HasMany(u => u.Histories)
.WithRequired()
.HasForeignKey(h => h.UserId);

(关系必须是必需的(不是可选的),因为外键属性 UserId 不可为空。)

关于entity-framework-5 - Fluent API - 一对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295705/

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