我是 .NET 的初学者,我很难理解如何使用外键创建对象。
假设我有这个Localitate
实体(模糊地转换为城市),其中包含一个指向Judet
(县)的 FK:
namespace xx.DataLayer.Entities
{
public class Localitate : BaseEntity
{
[Required]
public string Nume { get; set; }
[Required]
public int JudetID { get; set; }
[Required]
public virtual Judet Judet { get; set; }
public Localitate() { }
}
}
这是我的请求的外观:
public class LocalitateRequest
{
public string Nume { get; set; }
public int JudetID { get; set; }
}
当我创建一个Localitate
对象时,我应该怎么做?我是否也需要填写导航属性,还是int JudetID
足够了?
如果足够了,我会遇到另一个问题 - 如果我插入一个JudetID
不存在的,我不会收到任何错误(我认为我应该这样做,如果我要执行插入语句,我的数据库会这样做) .
当我创建一个 Localitate 对象时,我应该怎么做?我是否也需要填写导航属性,或者 int JudetID 是否足够?
如果您愿意,您可以填写外国 ID,但这非常不直观。想一想,您知道要将对象链接到哪个实体,对吗?因此,构建对象的更自然方式如下:
context.Localitati.Add(new()
{
Nume = "meep",
Judet = context.Judete.First(w => w.Nume = "moop")
});
为避免重复查找,您可以使用字典来记忆对象。无论哪种方式,您都需要填写 ID 或外国实体的 ID 字段(可以通过选择它来完成)。
如果我插入一个不存在的 JudetID,我不会收到任何错误
当然,因为那不是外键。要么使用属性声明它[ForeignKey]
,要么使用正确的命名约定:JudetId
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句