Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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
C# 如何在实体框架类中使用远程属性_C#_Entity Framework_Asp.net Mvc 4_Data Annotations - Fatal编程技术网

C# 如何在实体框架类中使用远程属性

C# 如何在实体框架类中使用远程属性,c#,entity-framework,asp.net-mvc-4,data-annotations,C#,Entity Framework,Asp.net Mvc 4,Data Annotations,在我的应用程序中,我使用数据库优先方法创建EDMX文件 我为那里的所有表生成了类 我能够使用注释,如Required、Display、StringLength、RegularExpression等 我知道在我的MVC模型中,我可以使用名为“Remote”的注释来验证我的实体属性 有没有办法在实体类中使用这个“远程”属性?或者可以使用其他方法创建自定义注释 更新: 我有这样的模型 public Exam Exam { get; set; } public TestInfo Test

在我的应用程序中,我使用数据库优先方法创建EDMX文件

我为那里的所有表生成了类

我能够使用注释,如Required、Display、StringLength、RegularExpression等

我知道在我的MVC模型中,我可以使用名为“Remote”的注释来验证我的实体属性

有没有办法在实体类中使用这个“远程”属性?或者可以使用其他方法创建自定义注释

更新: 我有这样的模型

    public Exam Exam { get; set; }
    public TestInfo Test { get; set; }
Exam和TestInfo都是实体框架生成的实体类


实体类“Exam”中有一个属性“ExamName”,我想验证它是否有重复的名称。

Remote
是一个数据注释,用于验证用户在UI中输入的内容。它对您的一个操作方法(您可以指定)进行ajax调用,并期望得到一个结果值,告诉您的系统中是否已经存在此数据

您可能需要为视图创建新的视图模型,而不是为视图使用entity framework创建的实体类。然后您可以在其上设置
Remote
属性。在动作方法中,您可以处理实际实体以检查数据的存在性

public class RegisterVM
{
    [Required]  
    [Remote("IsAvailable", "Validation")]      
    public override string UserName { get; set; }
}
现在,您可以使用
IsAvailable
操作方法来检查用户名是否存在。另外,请确保您的Register viw已强类型化到此新RegisterVM viewmodel

@model RegisterVM
@using(Html.Beginform())
{
  // your form controls

}

在实体类上具有
Remote
属性是没有意义的。它应该在视图模型上。否则你会把事情搞混的

看看这里——我看到了,但这是在MVC项目的模型中实现的。我想在实体类使用实体框架生成的地方实现同样的功能,我想在实体类中实现。不在ViewModel中为什么要在实体类中执行此操作?你们想做什么?我想知道这个名字是否已经存在。如果存在,则应给出错误。因此,使用视图模型,在
IsAvailable
操作方法中,您可以查询原始实体以检查其是否存在。@vaibhavshah远程属性还指定验证方法所在的端点。(国际海事组织)把这一点放在模型上是没有意义的。模型不应该关心这个。Viewmodel看起来好多了。