使用Linq2Sql的静态方法与存储库模式

时间:2009-05-08 16:26:15

标签: linq linq-to-sql static-methods

我已经想到了在部分Linq查询上创建静态方法,例如

public partial class User
{
    public static User FindByGuid(string guid, ApplicationDataContext context)
    {
        return context.Users.Where(x => x.GUID == guid).Single();
    }
}

因此,举例来说,我可以通过以下方式轻松找到用户:

using (var context = new ApplicationDataContext())
{
    var user = DataAccess.User.FindByGuid(UsersDropDown.SelectedValue, context);
}

这是公认的设计模式吗?这样做与存储库模型相比有哪些优点/缺点?

1 个答案:

答案 0 :(得分:1)

虽然我没有看到你在这里做什么的公认模式,但我确实通过将applicationdatacontext作为依赖项传递给方法来看到你正在使用依赖注入。这里的问题是,无论启动依赖项的位置如何,您仍然与datacontext紧密耦合,这使得单元测试变得更加困难。