gpt4 book ai didi

c# - 模型/实体与复杂类型

转载 作者:行者123 更新时间:2023-11-30 17:05:34 24 4
gpt4 key购买 nike

我在理解复杂数据类型与 ASP MVC 和 C# 中的实体时遇到问题。我首先创建了以下类型,这并不意味着是一个实体(数据库表):

public class Period : IPeriod
{
public DateTime From { get; set; }
public DateTime To { get; set; }
}

我将此类型添加到模型中:

public class Event
{
public int ID { get; set; }
public string Title { get; set; }
public Period EventTime { get; set; }
}

这很好用。它似乎理解 Period 是一个复杂的类型,而不是一个实体。它只是将列 EventTime_From 和 EventTime_To 添加到事件表。

但是,我通过删除接口(interface)、将类移动到不同的命名空间并向类添加方法,为 Period 类型增加了一些复杂性。突然,当试图重建数据库时,它突然被解释为实体类型,从而抛出缺少主键的异常。

这里的系统是什么?类何时被视为复杂类型,何时被视为实体?

最佳答案

如果不知道您所做的所有更改,很难说出到底发生了什么,但您始终可以明确地告诉 EF Period是一个复杂类型,可以用 ComplexType 标记它属性或使用流畅的映射:

modelBuilder.ComplexType<Period>();

关于c# - 模型/实体与复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449154/

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