再会。
任务:为客户端制作模型(来自数据库的基本信息),为服务器制作模型(来自数据库的所有信息,包括链接)。
数据库:MySQL
ORM:EF.Core
我的想法:
客户型号:
/// <summary>
/// Предмет.
/// </summary>
public class CUItem : CUBaseDbId
{
/// <summary>
/// id категории.
/// </summary>
public int CategoryId { get; set; }
/// <summary>
/// Категория.
/// </summary>
[JsonIgnore]
public CUCategory Category { get; set; }
/// <summary>
/// Артикул.
/// </summary>
public string Code { get; set; }
/// <summary>
/// Название.
/// </summary>
public string Name { get; set; }
}
服务器型号:
public class DbItem : CUItem
{
/// <summary>
/// Предметы на складе.
/// </summary>
public virtual ICollection<CUItemStorage> StorageItems { get; set; }
}
但是 EF.Core 不喜欢这种方法,它创建了 2 个相同的链接

最好的方法是什么?为客户端创建单独的模型并为服务器创建单独的模型(例如,在服务器模型中创建 ToClientModel() 方法)?但是,如果进行任何更改,您将不得不一次更新 2 个模型,而不是 1 个,这当然是可取的。
是的,这就是通常的做法。分离 UI 类和数据库对象模型。实际上,他们并没有很努力地与基地联系在一起。毕竟数据库不同,从 sql db 到 no sql 的过渡会很痛苦。