gpt4 book ai didi

c# - 验证 Entity Framework 模型类

转载 作者:行者123 更新时间:2023-12-03 10:36:45 25 4
gpt4 key购买 nike

我有一个由Supplier数据库第一种方法生成的EntityFramework模型。我将其包装在ViewModel SupplierViewModel中,这使得它可以通过WPF用户界面轻松显示和编辑。这是我的模特:

public partial class Supplier:IDataErrorInfo
{
public Supplier()
{
this.TblPurchases = new HashSet<TblPurchase>();
this.TblPurchaseOrders = new HashSet<TblPurchaseOrder>();
this.TblSupplierAddresses = new HashSet<TblSupplierAddress>();
}

public int SupplierId { get; set; }
public string SupplierName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
public string ZipCode { get; set; }

public virtual ICollection<TblPurchase> TblPurchases { get; set; }
public virtual ICollection<TblPurchaseOrder> TblPurchaseOrders { get; set; }
public virtual TblUser TblUser { get; set; }
public virtual ICollection<TblSupplierAddress> TblSupplierAddresses { get; set; }
public virtual TblCompany TblCompany { get; set; }

#region IDataErrorInfo members

//Validation logic put here

#endregion

}

我通过使用 IDataErrorInfo在这个模型类中添加了验证逻辑。我的问题是,当我使用 Entity Framework wizard从数据库生成模型类时,丢失了更改( IDataErrorInfo)。为什么我丢失了更改?那我如何在这里验证我的模型类呢?

最佳答案

更改丢失了,因为自动生成向导正在从头开始重新创建这些类。

解决此问题的最佳方法是在其他某个文件夹中创建另一个局部类。也许将文件夹称为IDataErrorInfoPartials或其他有意义的文件夹。然后像这样创建您的类:

public partial class Supplier:IDataErrorInfo
{
#region IDataErrorInfo members

//Validation logic put here

#endregion
}

然后,编译器会将它们组合成一个类。

我认为您需要确保两个部分都占用相同的 namespace 。

Here is a link about partial classes.

关于c# - 验证 Entity Framework 模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24324229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com