问题描述
我正在使用Entity Framework 6从sql Server提取为UiPath项目创建的自定义活动(C#.NET库)中的父表和一些子表的数据。首先创建数据库,然后使用带有现有数据库选项的代码优先生成类。
我注意到,对于子表“ Table18”(列表/集合)之一,有时我的查询未获取数据(未引发异常),而其他时候相同数据被获取无需任何代码更改即可完全正常。以下是与查询类似的代码示例。
protected override void Execute(CodeActivityContext context)
{
var server = "<server name>”;
var database = "<db name>”;
var appDBServer = "<app db server name>”;
var appdbname = "<app db name>";
var filter = "”;
Contract contract = null;
using (var dbContext = new Model1(server,database))
{
contract = dbContext.Contracts
.Where(c => c.Table1 != null && c.Table1.StatusID == 5 &&
(string.IsNullOrEmpty(filter) || c.Reference.Contains(filter)) &&
(string.IsNullOrEmpty(appDBServer) || c. AppDBServer == appDBServer) &&
(string.IsNullOrEmpty(appdbname) || c. Appdbname == appdbname))
.Include(c => c.Table1).Include(c => c.Table1.Table2)
.Include(c => c.Table3.Select(b => b.Table4))
.Include(c => c.Table5).Include(c => c.Table6).Include(c => c.Table7).Include(c => c.Table8)
.Include(c => c.Table9).Select(dc => dc.Table10))
.Include(c => c.Table11).Include(c => c.Table12).Include(c => c.Table13).Include(c => c.Table14)
.Include(c => c.Table15).Include(c => c.Table16).Include(c => c.Table17)
.Include(c => c.Table18).Include(c => c.Table19).Include(c => c. Table20).Include(c => c.Table21)
.OrderBy(c => c.Table1.ReceivedOn).ThenBy(c => c.Year)
.FirstOrDefault();
if (contract != null)
{
contract.Table1.StatusID = 1;
contract.Table1.ProcessstartDate = DateTime.Now;
contract.Table1.RetryCount++;
dbContext.SaveChanges();
}
}
Contract.Set(context,contract);
}
我已禁用了延迟加载,并且每次获取后都会处理db上下文。我在数据库上下文构造函数中使用以下代码。
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
Database.Setinitializer<Model1>(null);
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)