- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 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/
我是一名优秀的程序员,十分优秀!