【问题标题】:How do I make my Linq to Sql entity expose an interface?如何让我的 Linq to Sql 实体公开一个接口?
【发布时间】:2010-06-01 11:32:29
【问题描述】:

以书呆子晚餐为例:

private NerdDinnerDataContext db = new NerdDinnerDataContext();

public IQueryable<Dinner> FindAllDinners() 
{
    return db.Dinners;
}

在这里直接暴露实体类Dinner不是不好的做法吗?我认为存储库最好返回IDinner

所以我的问题是,如何让自动生成的实体类公开我的界面?

【问题讨论】:

  • 在不失去使用 LINQ 查询的可能性的情况下,您将无法使用 LINQ to SQL 进行此操作。
  • @Steven:真的吗?那是不是意味着 L2S 真的很烂?

标签: linq-to-sql design-patterns interface


【解决方案1】:

据我所知,唯一的方法是修改生成代码的模板。另一种可能性是部分类。代码生成器创建部分类。您可以创建另一个包含所需接口的部分类。我相信这会奏效。

【讨论】:

  • 是的,或者围绕所有生成的类创建包装类。我认为也许 .NET 4 和 Visual Studio 2010 提供的 Linq-To-Entities 框架可以做得更好,但我不记得我在哪里读到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 2010-10-26
  • 2023-03-11
  • 2011-04-27
  • 2011-03-25
相关资源
最近更新 更多