我在IIS服务器上使用Entity Framework。我的服务有几种方法可供经过身份验证的用户访问。
以下是其中一种方法的示例:
public bool SaveTruckInventoryReading(TruckInventory truckInventory)
{
entities.AddToTruckInventories(truckInventory);
entities.SaveChanges();
return true;
}
我没有提供太多信息,因为我想问一个具体的问题。 TruckInventory是一个实体对象。我应该创建一个他们传入的类,还是我正在以正确的方式让它们将对象传递给我的方法?
如果我创建一个类,我必须将它转换为我的实体对象。对我来说,似乎是没有必要的额外代码。
如上所示,暴露我的实体对象是一种接受信息的坏方法,还是应该让它们传递给泛型类?
答案 0 :(得分:1)
对此没有“正确”的答案。
如果TruckInventory
是POCO,那么以你的方式揭露它并没有太大的危害。然而,有许多人认为这可能会违反你的担忧分离。
如果问题分离是一个问题,那么我会使用TuckInventory
DTO,只公开您希望消费者有权访问的信息。如果你走这条路线,你需要一个像AutoMapper这样的映射器来从你的DTO映射到你的实体。
答案 1 :(得分:0)
我不认为以这种方式直接暴露您的实体是个好主意。您应该创建一个DTO并将其传递给服务,然后将DTO转换为实体并将其保存在DB中。
原因是EF类不是为序列化而设计的。他们会有很多额外的信息,你不需要发送到服务器