Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 将验证放在实体框架的实体的属性级别_Entity Framework_Validation_T4 - Fatal编程技术网

Entity framework 将验证放在实体框架的实体的属性级别

Entity framework 将验证放在实体框架的实体的属性级别,entity-framework,validation,t4,Entity Framework,Validation,T4,我正在使用T4模板从.edmx文件生成实体,现在我想对实体进行验证 我的要求是: 1) 我正在开发win应用程序,实体的每个属性都与数据源绑定,所以希望保留策略,即当按下保存按钮时,相应的实体将被验证,绑定无效属性的控件将显示错误图标 2) 我不想将验证保留在数据层,因为在业务层中有一些业务验证和自定义消息…我使用的是Fluent验证框架。这种方法是为您想要验证的每个实体实现一个外部验证器。 这很简单,但最重要的是它允许您选择要在哪一层进行验证。 您可以在codeplex上找到它,网址为: 您

我正在使用T4模板从.edmx文件生成实体,现在我想对实体进行验证

我的要求是:

1) 我正在开发win应用程序,实体的每个属性都与数据源绑定,所以希望保留策略,即当按下保存按钮时,相应的实体将被验证,绑定无效属性的控件将显示错误图标


2) 我不想将验证保留在数据层,因为在业务层中有一些业务验证和自定义消息…

我使用的是Fluent验证框架。这种方法是为您想要验证的每个实体实现一个外部验证器。 这很简单,但最重要的是它允许您选择要在哪一层进行验证。 您可以在codeplex上找到它,网址为:

您可以获得实体和验证器之间的分离,这是通过注释(例如:企业库)无法获得的


希望它有帮助

还有一个限制,由于业务验证,我不能使用数据批注进行验证。请将您的实体移动到业务层,并在实体中实现验证。@Ladislav Mrnka,实际上我不想更改自动生成类中的任何代码,实体是数据层的一部分,因此无法执行此操作。。。还有其他选择吗?谢谢,我已经看到了,,但我仍然不知道如何显示控件对应的错误图标。。。如果你有任何代码可以共享吗?有一个组件:ErrorProvider。它会在控件旁边显示一个图标,如果需要,还会显示一条消息。您可以从这里开始:您必须在某个单击事件上调用验证器并返回验证结果,以便以编程方式设置ErrorProvider