【发布时间】:2020-05-07 11:19:31
【问题描述】:
给出下面的示例,有没有办法在不使用表拆分或拥有类型(例如 EF6 复杂类型)的情况下将 Address 与 User 放在同一个表中?生成的 SQL 使我无法使用它,并且 EF Core 3 似乎不支持复杂类型:
public class User
{
public int Id { get; set; }
public Address Address { get; set; }
public string UserName { get; set; }
}
public class Address
{
public string StreetAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
我看到的唯一其他选项是将 Address 映射到它自己的表。
【问题讨论】:
-
那么为什么不能使用 use Owned Types 呢?
-
这只是一个简化的例子,由于生成的SQL不好,报告了很多问题,例如github.com/dotnet/efcore/issues/18299
-
如果您不想直接搜索地址元素,您可以将地址属性建模为用户的仅限字段属性,并使地址实例读/写到用户的支持字段。参见例如docs.microsoft.com/en-us/ef/core/modeling/…
标签: c# sql-server entity-framework-core ef-core-3.1