【问题标题】:Override the setter generated in the DBML file覆盖 DBML 文件中生成的 setter
【发布时间】:2012-08-25 15:08:33
【问题描述】:

我想覆盖部分类中的属性设置器:

部分类:

public partial class User
{
    public string Name
    {
        set
        {
            // Do something
        }
    }
}

但我有以下错误:

“用户”类型已包含“名称”的定义

如何修改 DBML 文件中生成的初始设置器?

【问题讨论】:

标签: c# linq-to-sql partial-classes


【解决方案1】:

这是可能的,只是使用一些诡计

http://www.codeproject.com/Articles/31519/LINQtoSQL-Customize-the-Code-Generated-by-the-Desi

您也可能对这个问题感兴趣:DBML customization vs regeneration

不过,您尚未指定要实现哪种自定义。

【讨论】:

    【解决方案2】:

    不能 覆盖 partial class 中的某些内容。 要覆盖某些内容,您首先需要从某些内容中派生

    Partial class同一个类,但分布在不同的 IO 文件之间。

    【讨论】:

    • 并且在 2 个不同的文件中定义部分类的相同属性也是不可能的。 (对吧?)
    • @niaher 我会回答 Tigran。这是正确的,这是不可能的。部分类是同一个类,“部分”意味着将类代码物理拆分到单独的文件中以方便人类使用(代码生成器经常使用部分类,只是为了节省生成器每次重写代码时都需要跳转代码)。仅此而已。因此,您可以再次将这些部分放在一个文件中,并且它在逻辑上与以前 100% 相同。所以,很明显,不能允许模棱两可的标识符。
    • @niaher:如果你想定义不同的属性,只需定义一个不同的,因为在这个的情况下我们谈论的是同一个类,同一类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2021-12-02
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多