我正在尝试将一个复杂的类型传递给WebApi,在我的ApiController上有这个:
[HttpPost]
public void DoSomeCrud(JObject data)
{
ComplexModel item = data.ToObject<ComplexModel>();
// Do some logic here
}
我的问题是我的ComplexModel中的一个属性是Entity Framework实体。如果已分离,我在传递该实体时没有问题,但是一旦从DbContext获取该实体,模型就无法按预期传递给WebApi。
我的问题是.. :无论如何分离我的实体保留我对外键的引用?因为我需要WebApi方面的那些引用。
由于
答案 0 :(得分:0)
使用实体框架中的模型作为Web Api的数据传输对象(Dto)并不是最佳实践,因为您可能会遇到序列化问题,因为来自EF的模型实际上是支持延迟加载和导航属性的代理(如果您不是分开它。)
最佳做法是,为了分离关注点,您应该定义自己的Dto对象,而不是直接从EF使用实体模型。
简单的例子,如果你有Customer
个实体,你也应该有CustomerDto
个实体来预测你想要的Customer
个属性。