【发布时间】:2014-08-04 01:11:47
【问题描述】:
我目前正在开发一个使用 Linq-to-SQL 类的非常基本的应用程序。通过利用它们是“部分的”这一事实,我一直在向自动生成的数据类添加新的方法和属性。但是,现在我想实际修改一个类方法中包含的代码 - 即 SendPropertyChanged()。
我能看到的最简单的方法是修改自动生成的 .designer.cs 文件本身中的代码,但我可以看到这是非常危险的(因为代码可能会被代码生成器覆盖) .有没有其他方法可以让我安全地修改代码?
编辑:我为什么要这样做:我想添加一个属性“isDirty”,只要任何字段发生更改,就会设置该属性。因为每当更改字段时,它都会调用 SendPropertyChanged 方法,我想我会在其中粘贴“isDirty = true”(进行适当的检查)。
【问题讨论】:
-
这听起来是个坏主意,每次更新 dbml 都会丢失所做的更改。为什么要更换它?不能使用其中一种分部方法吗?
-
我想在类中添加一个 isDirty 属性,每当更新任何字段时都会设置该属性。我[i]可以[/i]使用 onFieldChanged() 事件(如果找不到合适的替代方法,我可能会)并将它们添加到部分类中,但这似乎太不雅了。
-
使用 LINQ to SQL 也是个坏主意。如果您可以选择,我建议您切换到更成熟、受支持的 ORM,例如 Entity Framework 或 nHibernate。 L2S 不再被开发......它已经死了。
-
@DanielMann 我不打算走那么远,但为 NH +1