3

我在 IIS 服务器上使用实体框架。我的服务有几种方法可供经过身份验证的用户访问。

以下是其中一种方法的示例:

public bool SaveTruckInventoryReading(TruckInventory truckInventory)
{
  entities.AddToTruckInventories(truckInventory);
  entities.SaveChanges();
  return true;
}

因为我想问一个具体的问题,所以我没有提供太多信息。TruckInventory 是一个实体对象。我应该创建一个他们传入的类,还是我正在做的正确方法允许他们将对象传递到我的方法中?

如果我创建一个类,我必须将它转换为我的实体对象。对我来说,这似乎是不必要的额外代码。

如上所示,公开我的实体对象是一种接受信息的不好方式,还是应该让它们传入通用类?

4

2 回答 2

1

对此没有“正确”的答案。

如果TruckInventory是 POCO,那么以你现在的方式暴露它并没有太大的危害。但是,有许多人会争辩说这可能会违反您的关注点分离。

如果关注点分离是一个问题,那么我会选择TuckInventory只公开您希望消费者访问的信息的 DTO。如果你走这条路,你将需要一个像 AutoMapper 这样的映射器来从你的 DTO 映射到你的实体。

于 2013-05-31T14:14:30.607 回答
0

我认为以这种方式直接公开您的实体不是一个好主意。您应该创建一个 DTO 并将其传递给服务,然后将 DTO 转换为实体并将其保存在数据库中。

原因是 EF 类不是为序列化而设计的。他们会有很多额外的信息,你不需要发送到服务器

于 2013-05-31T14:12:53.077 回答