0

我使用了自我跟踪实体,我执行以下操作:

1.- 我创建了一个新实体

2.- 我修改了它的一个属性,例如 entityName="Dummy"

修改后,实体的状态仍然没有改变,所以当我执行 applychanges 时,它会做任何事情。

我尝试将其状态设置为已修改,然后将更改保存在数据库中。但是这样一来,我就有问题了,因为如果我没记错的话,STE实现了INotifyPropertyChanged接口,所以当我修改一个属性时,就是notify,这是我想要的一个特性。

我错了?也许当我改变一个实体的属性时它不会改变它的状态。

谢谢。戴姆洛克。

编辑:当我使用 WCF 服务获取实体时,也会出现此问题,该服务使用 EF 4.0 将查询结果发送到数据库。

EDIT2:我发现了我的错误。

问题是我有一个 dll 项目,其中有 tt 文件和自我跟踪实体。

我有一个引用该项目的 WCF 服务。此服务使用使用 EF 访问数据库的存储库。

我有一个托管 WCF 服务的自托管应用程序。此应用程序没有对 STE 的 dll 的引用。

我使用 svcutil 创建 service.cs。

我有客户端,我在其中添加了 service.cs。service.cs 如何使用 STE 拥有我的 dll 项目的类。但是有一个问题,这个类没有所有这些类。我的意思是,例如具有 ChangeTracker 属性,但它们没有 MarkAs 方法和其他方法。

因此,如果我编辑 service.cs 以更改声明我的类的命名空间并使用 STE 类添加对项目的引用,我可以访问所有方法并且也可以按预期工作。

所以问题出在我服务的“STE 类”中,而不是在我的 dll 项目的 STE 类中。

为什么当我生成 service.cs 时不生成“完整类”?这使我使用 STE 添加对我的 dll 项目的引用并编辑 service.cs 以删除其 STE 类的代码,这些代码无法按我的预期工作。有没有办法在 service.cs 文件中添加“好的 STE 类”?

谢谢。戴姆洛克。

问题是我在 WPF 应用程序中托管了一个 WCF 服务。我运行自托管应用程序并使用 svcutil 创建 Service.cs。

我在我的客户端应用程序中添加了这个 Service.cs。在这个 Service.cs 中存在我的

4

1 回答 1

2

你的描述太混乱了。

STE 使您的服务和客户端之间紧密耦合。使用 STE 的唯一正确方法是将它们放在单独的程序集中,并在客户端和服务之间共享此程序集。当您使用 svcutil.exe 为客户端应用程序创建服务引用时,您可以使用reference参数来指定该程序集以进行类型解析,而不是创建新的非 STE 类型(用于添加服务引用的 VS UI 提供类似的配置)。

于 2012-05-05T13:00:35.280 回答