gpt4 book ai didi

c# - Entity Framework 外键作为主键代码优先

转载 作者:IT王子 更新时间:2023-10-29 04:38:08 26 4
gpt4 key购买 nike

我有两个代码优先模型,Foo 和 FooState,其中 Foo 有一个可选的 FooState。

public class Foo
{
[Key]
public int FooId { get; set; }

public FooState FooState { get; set; }
}

public class FooState
{
[Key]
public int FooStateId { get; set; }

[Required]
public int State { get; set; }

[Required]
public Foo Foo { get; set; }
}

但是当我尝试像这样将外键添加到 FooState 时,这工作正常

public class FooState
{
[Key]
public int FooStateId { get; set; }

[Required]
public int State { get; set; }

[ForeignKey("Foo")]
[Required]
public int FooId
public Foo Foo { get; set; }
}

这一切都失败了,因为 FooStateId 实际上是使用 FooId 作为它的主键。从数据库的角度来看,这是有道理的。

不过,我希望在保存 FooState 记录时不必填充 Foo 的实例,但仍保留所需的属性。

这将允许我在 dto 中发送 FooId 和状态,如果我想更改其状态,则不必从数据库中检索整个 Foo 对象。

我应该如何首先使用 EF 代码进行设置?

最佳答案

我想我会试一试,效果很好。

public class FooState
{
[Required]
[Key]
[ForeignKey("Foo")]
public int FooStateId { get; set; }

[Required]
public int State { get; set; }

public Foo Foo { get; set; }
}

关于c# - Entity Framework 外键作为主键代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623342/

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