gpt4 book ai didi

.net - 如何将业务逻辑放入 ADO.NET Entity Framework 类中?

转载 作者:行者123 更新时间:2023-12-01 19:07:25 24 4
gpt4 key购买 nike

我想使用 ADO.NET Entity Framework 进行数据访问,为我的业务逻辑扩展其对象,并将这些对象绑定(bind)到我的 UI 中的控件。

the answers to another question 中所述,我无法使用部分类扩展 ADO.NET Entity Framework 对象并在 LINQ 查询中使用我的自定义方法。

ADO.NET Entity Framework partial class http://img221.imageshack.us/img221/7329/clientsq0.gif

我不希望智能感知中出现会导致运行时错误的方法!我应该如何设计我的应用程序以避免这个问题?

VB.NET LINQ with custom method http://img83.imageshack.us/img83/1580/iswashingtongn0.gif

我是否需要一个数据访问客户端类和一个业务逻辑客户端类?看起来这会让人感到困惑。

最佳答案

您可以使用(普通旧式 C# 对象)POCO 和管理器来构建您的解决方案。

这样您就可以将业务逻辑与值对象分开。

为了使其“看起来很漂亮”,您可以在参数上使用 (this) 修饰符标记您的方法,以便您可以将这些方法用作扩展方法。

一个例子可以让这一点变得很清楚:

位置值对象:

public class Location
{
public string City { get; set; }
public string State { get; set; }
}

位置管理器:

public static class LocationManager
{
public static bool IsWashington(this Location location)
{
return location.State == "WA";
}
}

现在,扩展方法的显示方式将与对象上的标准属性/方法不同。

“IsWashington”方法可以通过两种方式调用

Location location = new Location { State = "WA" };
LocationManager.IsWashington(location);

Location location = new Location { State = "WA" };
location.IsWashington();

现在您已经分离了业务逻辑和值对象,但您仍然可以进行“漂亮”的方法调用。

如果您觉得您的开发人员同事(或者您:))会滥用扩展方法部分,那么就不要使用它。

关于.net - 如何将业务逻辑放入 ADO.NET Entity Framework 类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/262339/

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