【问题标题】:How to extend datamodel in LINQPad using partial classes?如何使用部分类扩展 LINQPad 中的数据模型?
【发布时间】:2014-07-23 08:40:05
【问题描述】:

在 C# 程序中,可以通过使用部分类来扩展生成的数据模型中的类(因为生成的类被标记为部分,它们多好啊)。

但我想在 LINQPad 中做同样的事情。我怎么做 ?看不到生成的数据模型,所以不知道用什么命名空间和类名。

【问题讨论】:

  • 你指的是什么数据模型?您只是想在 LINQPad 中使用部分类吗?
  • @JeroenVannevel 将 LINQPad 连接到数据库时,会自动生成所有表的 EF 数据上下文。他想将属性或方法添加到生成的类之一。在普通的 Visual Studio 解决方案中,您可以通过在生成的类旁边添加部分类声明来做到这一点,他询问在相同情况下如何在 LINQPad 中完成。

标签: c# datacontext linqpad partial-classes


【解决方案1】:

很遗憾,这无法做到。

原因是数据上下文和相关类型是在与您的查询不同的程序集中定义的。

您可以通过运行以下LINQPad 程序来验证这一点,将“公寓”类型替换为您数据库中的类型。

void Main()
{
    typeof(apartments).Assembly.GetName().Dump();
    GetType().Assembly.GetName().Dump();
}

【讨论】:

  • 可能关键是“我的扩展”中的代码和生成的数据上下文是否可以互相看到,可以这么说。但我仍然需要知道一些关于名称、放置位置的信息。
  • 好像做不到。但是,如果可以的话,那不是很好……希望 LINQPad 的人会注意到这一点:)
  • 除了希望之外,您可能还想检查linqpad.uservoice.com上是否已经存在类似的想法。
  • 我找不到,所以我在这里添加了它:linqpad.uservoice.com/forums/18302-linqpad-feature-suggestions/…如果你喜欢,请随意投票:)
  • 还有另一个困难:LINQPad 不能从 C# 代码编译类型化的数据上下文程序集。它直接使用 Reflection.Emit 生成它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2012-06-30
相关资源
最近更新 更多