【问题标题】:Extend a model to add methods扩展模型以添加方法
【发布时间】:2013-08-05 21:24:39
【问题描述】:

我在 C# 桌面应用程序中对 MySQL 数据库进行了逆向工程。我想做的是扩展模型类之一,以便我可以向它添加方法以在我的应用程序中本地使用。我不想改变任何属性或任何东西。只需获取信息并计算即可。

问题是,当我从其中一个模型类继承时,我收到一个错误,即新的鉴别器字段在类中但不在数据库中。

有没有办法做我想做的事?

【问题讨论】:

  • 这些模型类是否是局部的?

标签: c# mysql .net entity-framework


【解决方案1】:

鉴于模型类是部分的,您只需声明自己的 partial classes 即可加入它们:

// Note - needs to be in the same namespace as the auto-generated declaration

public partial class Foo
{
    // Add your own methods here, which can refer to the properties declared
    // for the same type in the auto-generated code
}

部分类的要点是多个文件可以为同一类型贡献源代码。

【讨论】:

  • 这是扩展模型类的最佳方式(以及它们被声明为部分的全部原因)。只要您通过创建计算方法和/或属性(或具有 [NotMapped] 属性的属性)来扩展它们,一切都会好起来的。
【解决方案2】:

您可以尝试extension methods 来完成此操作,而不是继承和创建新的子类型。

您可以将扩展方法“附加”到您生成的模型类。

【讨论】:

  • 这看起来很有希望。我明天得试试。如果解决了,我会报告的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
相关资源
最近更新 更多