LINQ上EF生成的类

时间:2013-03-10 04:43:21

标签: linq entity-framework class generated

我在数据库的EF上有这个类

public partial class STUDENT
{
    public short STUDENTID { get; set; }
    public string NAME { get; set; }
    public string FAMILY { get; set; }

    public virtual CLASS CLASS { get; set; }
}

public partial class CLASS
{
    public CLASS()
    {
        this.STUDENTs = new HashSet<STUDENT>();
    }

    public short CLASSID { get; set; }
    public string CLASSNAME { get; set; }

    public virtual ICollection<STUDENT> STUDENTs { get; set; }
}

public partial class VALIDNAMES
{
    public string VALIDNAME { get; set; }
}

我希望强制用户无法在student.name上插入此名称不在VALIDNAMES上的任何数据。 我想在模型层中执行此操作,因为我想在许多页面上使用name属性,因此我想在此层上进行此验证。

另一方面,我想在模型层上使用LINQ,或者是否可以使用更改集来获取EF生成的类?

1 个答案:

答案 0 :(得分:0)

您可以尝试在STUDENT表的NAME列上设置引用VALIDNAMES表的VALIDNAME列的外键约束。

假设您使用的是SQL Server,则需要对数据库执行类似的操作:

ALTER TABLE [dbo].[STUDENT]  WITH CHECK ADD  CONSTRAINT [FK_student_valid_name] FOREIGN KEY([NAME])
REFERENCES [dbo].[VALIDNAMES] ([VALIDNAME])
GO

您可能还需要将[学生]。[NAME]列指定为NOT NULL(因此您的用户无法输入NULL名称),并将[VALIDNAMES]。[VALIDNAME]设置为唯一索引/主键。

这样,验证由DBMS而不是您的应用程序代码完成。