假设我有一张表TabA
namespace MyProject.Models.Database //<-- the same namespace as the EF's dbmx file
{
public partial class TabA
{
public void Foo()
{
//
}
}
}
在Foo
方法中,我需要在另一个表上执行一些操作,这个操作没有与TabA
相关联。换句话说,我需要访问其中的实体框架适配器方法。有可能吗?
答案 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()时应用。