c# – MVC 4.和实体框架表加入

前端之家收集整理的这篇文章主要介绍了c# – MVC 4.和实体框架表加入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个项目让我很生气;-)
我正在尝试连接两个表的简单查询

我有以下内容

存储库类方法

public IQueryable<ADPerson> FindAll(string UserId)
    {
        return (from p in db.ADPerson
                select p); 


    }

在我的控制器中:

var ADPersonList = from o in ADPersonDB.FindAll(GetUserId())
                    join c in MSDNTypeDB.FindAll(GetUserId()) on o.MsdnTypeId equals c.MsdnTypeId
                    select new ADPerson()
                    {

                        AdPersonId = o.AdPersonId,SamAccountName = o.SamAccountName,Description = o.Description,DisplayName = o.DisplayName,UserPrincipalName = o.UserPrincipalName,Enabled = o.Enabled,LastUpdated = o.LastUpdated,OnlineAssetTag = o.OnlineAssetTag,MsdnTypeId = o.MsdnTypeId,MsdnSubscription = c.MsdnTypeDescription,};

我一直收到错误

{"The specified LINQ expression contains references to queries that are associated with different contexts."}

我还尝试添加到存储库类:

存储库类方法

public IQueryable<ADPerson> FindAll(string UserId)
    {
        //return (from p in db.ADPerson
        //        select p); 

        var query = from o in db.ADPerson
                    join c in db.MsdnTypes on o.MsdnTypeId equals c.MsdnTypeId
                    select new ADPerson()
                    {

                        AdPersonId = o.AdPersonId,};

        return query;

    }

是否真的很难在两个表之间进行简单连接并在Entity框架中填充变量

谢谢

解决方法

投射到匿名对象
var query = from o in db.ADPerson
   join c in db.MsdnTypes on o.MsdnTypeId equals c.MsdnTypeId
   select new 
   {
     AdPersonId        = o.AdPersonId,SamAccountName    = o.SamAccountName,Description       = o.Description,DisplayName       = o.DisplayName,Enabled           = o.Enabled,LastUpdated       = o.LastUpdated,OnlineAssetTag    = o.OnlineAssetTag,MsdnTypeId        = o.MsdnTypeId,MsdnSubscription  = c.MsdnTypeDescription,};

然后映射回您的实体

foreach (var item in query)
{
  var adPerson = new ADPerson
  {
    AdPersonId         = item.AdPersonId,SamAccountName     = item.SamAccountName,Description        = item.Description,DisplayName        = item.DisplayName,UserPrincipalName  = item.UserPrincipalName,Enabled            = item.Enabled,LastUpdated        = item.LastUpdated,OnlineAssetTag     = item.OnlineAssetTag,MsdnTypeId         = item.MsdnTypeId,MsdnSubscription   = item.MsdnTypeDescription,{
}

猜你在找的C#相关文章