EF:部分类 - 访问适配器?

时间:2012-09-06 13:55:09

标签: entity-framework

假设我有一张表TabA

namespace MyProject.Models.Database //<-- the same namespace as the EF's dbmx file
{
    public partial class TabA
    {
        public void Foo()
        { 
            //
        }
    }
 }

Foo方法中,我需要在另一个表上执行一些操作,这个操作没有与TabA相关联。换句话说,我需要访问其中的实体框架适配器方法。有可能吗?

修改

答案在这里https://stackoverflow.com/a/11135157/106616

1 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,我假设您有理由想要从TabA实体处理另一个实体。如果这是真的,我可以看到两种方法。

A)如果您希望您的更改与TabA实体的其他可能更改同时应用,那么您始终可以将上下文作为参数传递:

namespace MyProject.Models.Database //<-- the same namespace as the EF's dbmx file 
{ 
    public partial class TabA 
    { 
        public void Foo(YourDbContext context) 
        {  
            var otherTableQuery = from x in context.SecondTable
                             where ...
                             select x;

            foreach (var item in otherTableQuery)
            {
                item.Column1 = "A certain value";
            }
        } 
    } 
}

您的通话方式可能如下:

public void DoChangesToTabA()
{
    using ( YourDbContext context = new YourDbContext())
    {
        var tabAquery = from x in context.TabA
                        where ...
                        select x;

        foreach( var item in tabAQuery)
        {
            item.LastModified = DateTime.Now;

            if(???)
            {

            }

        }
    }
} 

现在,您的更改将在您下次从调用方法调用context.SaveChanges()时应用。