我想使用自有类型进行TableSplitting.我有以下型号:
public class Account
{
public GUID Id { get; set; }
public string Email { get; set; }
public StreetAddress Address { get; set; }
}
public class StreetAddress
{
public string Name { get; set; }
public string Address { get; set; }
public string Zipcode { get; set; }
public string City { get; set; }
public string Country { get; set; }
public Location Location { get; set; }
}
public class Location
{
public double …Run Code Online (Sandbox Code Playgroud) 我的情况下,我想存储一个地址,但它必须是可选的。
我的映射如下所示:
map.OwnsOne(x => x.Address, cb => cb.OwnsOne(l => l.Location));
Run Code Online (Sandbox Code Playgroud)
但是当将我的DbContext的地址设置为空iam时出现此错误:
InvalidOperationException:'Member'的实体正在与'Member.Address#StreetAddress'共享表'Members',但是没有具有相同键值'Id:-2147480644'的此类型的实体被标记为'Added '。
然后,我从构造函数实例化了Address和Location,现在可以保存实体。但是,当再次获取数据时,我也得到了一个实例化的地址,我真的想要一个空值。
不能创建可为空的拥有类型吗?