Linq to sql Linq到sql datacontext类的设计问题?

Linq to sql Linq到sql datacontext类的设计问题?,linq-to-sql,datacontext,Linq To Sql,Datacontext,我只在web场景中使用LINQtoSQL。我知道建议总是将datacontext包装在using中,但仅在web场景中,我设计的场景类型中,这实际上是没有必要的,因为每个页面都会在很短的时间内生成和消亡 在这样的背景下,我研究了如何将一些linq扩展到sql类 public partial class aspnet_User { MainDataContext _dc = new MainDataContext(); public MainDataContext DataCon

我只在web场景中使用LINQtoSQL。我知道建议总是将datacontext包装在using中,但仅在web场景中,我设计的场景类型中,这实际上是没有必要的,因为每个页面都会在很短的时间内生成和消亡

在这样的背景下,我研究了如何将一些linq扩展到sql类

public partial class aspnet_User
{
    MainDataContext _dc = new MainDataContext();

    public MainDataContext DataContext 
    {
        get
        {
            return _dc;
        }
        set
        {
            _dc = value;
        }
    }

        public static aspnet_User GetUser(Guid guid)
        {
        //Here I load the user and associated child tables. 
        //I set the datacontext for the aspnet_User with the local DC here
        }

       //_dc.SubmitChanges()
       public SaveUser()
所以,这是我采用的设计结构,它似乎对我的案例很有效。我的部分问题是我正在使用这个内置的成员结构,并试图添加到它,这比重新创建自己的成员结构更容易,但有一定的局限性。诚然,对象接口的确切组合并不理想,因为有些功能是跨数据库表分层的,无论好坏

我的问题是,对于一些子对象,例如aspnet_成员资格,我还使用它自己的DC扩展了它。但是,目前还没有一种机制可以让我在不手动设置的情况下更新所有孩子的DC

我希望看到各种需要最少编码的设计解决方案,能够以某种优雅的方式解决这个问题


此外,任何关于物体分层的详细和具体的建议都值得赞赏。这可能是一箭双雕。

您真的应该通过
System.Web.Security.MembershipProvider
类本机提供的方法来操纵成员资格。不建议直接操作ASP.NET成员资格数据库中的数据库表


如果您想将
System.Web.Security.MembershipProvider
包装到您自己的自定义类中,那就好了;事实上,ASP.NET MVC正是这样做的,以便更容易执行单元测试。但这并不是真正的DataContext,因此。

是的,我也这样做了,但我认为使用linq到sql功能对于某些任务,特别是查询,会很方便。我决定按照DRY原则使用基本linq到sql类,而不是仅仅为了结果而创建类。现在,我考虑一下,嗯,我将不讨论这个问题,因为DC是一个更普遍的问题,可以解决。