Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的导航属性为空_C#_Entity Framework_Asp.net Identity - Fatal编程技术网

C# 实体框架中的导航属性为空

C# 实体框架中的导航属性为空,c#,entity-framework,asp.net-identity,C#,Entity Framework,Asp.net Identity,我正在使用ASP.NETMVC构建一个简单的社交网络,我发现了一个问题。我对此非常陌生,因此这可能是一个简单的解决方案,但这里有: 我正在尝试设置一个系统,其中一个用户(ApplicationUser)可以向另一个用户发送好友请求,目前为止,好友请求正在数据库中与好友请求的发送者和接收者注册 以下是好友请求/好友的模型: public class Friend { public int Id { get; set; } public ApplicationUser User {

我正在使用ASP.NETMVC构建一个简单的社交网络,我发现了一个问题。我对此非常陌生,因此这可能是一个简单的解决方案,但这里有:

我正在尝试设置一个系统,其中一个用户(
ApplicationUser
)可以向另一个用户发送好友请求,目前为止,好友请求正在数据库中与好友请求的发送者和接收者注册

以下是好友请求/好友的模型:

public class Friend
{
    public int Id { get; set; }
    public ApplicationUser User { get; set; }
    public ApplicationUser UserFriend { get; set; }
    public DateTime BecameFriends { get; set; }
    public bool Status { get; set; }

}
问题是当我试图显示登录用户的好友请求活动时。我有一个
ShowFriendRequest
操作,看起来像这样:

public ActionResult ShowFriendRequests(string Id)
{
        //ADC is the ApplicationDataContext

        var result = from f in ADC.Friends select f;
        List<Friend> SearchResult = new List<Friend>();

        SearchResult = result.Where(x => 
        x.UserFriend.Id.Equals(Id)).ToList();

        var model = new FriendViewModel
        {
            FriendList = SearchResult
            //this is a List<Friend>
        };

        return PartialView(model);
 }
System.Diagnostics.Debug.WriteLine(SearchResult[0].UserFriend.Id);

为什么从数据库中提取一个好友请求时,
ApplicationUser
实体为空?

问题在下面一行:

var result = from f in ADC.Friends select f;
您既不是
惰性加载
也不是
急切加载
应用程序用户和
朋友
。因此,请按如下方式编写结果查询:

var result = ADC.Friends.Include(f => f.ApplicationUser);

问题出现在以下行中:

var result = from f in ADC.Friends select f;
您既不是
惰性加载
也不是
急切加载
应用程序用户和
朋友
。因此,请按如下方式编写结果查询:

var result = ADC.Friends.Include(f => f.ApplicationUser);

TanvirArjel的回答是正确的,如果您想执行这种查询,include是必需的

但是你可以重写所有的

var result = from f in ADC.Friends select f;
List<Friend> SearchResult = new List<Friend>();

//ADC is the ApplicationDataContext

SearchResult = result.Where(x => x.UserFriend.Id.Equals(Id)).ToList();

var model = new FriendViewModel
        {
            FriendList = SearchResult
            //this is a List<Friend>
        };


        return PartialView(model);
var result=来自ADC中的f。朋友选择f;
列表搜索结果=新列表();
//ADC是ApplicationDataContext
SearchResult=result.Where(x=>x.UserFriend.Id.Equals(Id)).ToList();
var模型=新的FriendViewModel
{
FriendList=搜索结果
//这是一份清单
};
返回局部视图(模型);
对此

var SearchResult = ADC.AspNetUsers.Select(x=>x.Friend).ToList(); //Maybe you will have FriendNavigation if you don't find Friend relationship.. use intellisense in that case

var model = new FriendViewModel
        {
            FriendList = SearchResult
            //this is a List<Friend>
        };


return PartialView(model);

var SearchResult=ADC.AspNetUsers.Select(x=>x.Friend.ToList()//如果你找不到朋友关系,也许你会有FriendNavigation。。在这种情况下使用intellisense
var模型=新的FriendViewModel
{
FriendList=搜索结果
//这是一份清单
};
返回局部视图(模型);

TanvirArjel的答案是正确的,如果您想执行此类查询,则必须包含

但是你可以重写所有的

var result = from f in ADC.Friends select f;
List<Friend> SearchResult = new List<Friend>();

//ADC is the ApplicationDataContext

SearchResult = result.Where(x => x.UserFriend.Id.Equals(Id)).ToList();

var model = new FriendViewModel
        {
            FriendList = SearchResult
            //this is a List<Friend>
        };


        return PartialView(model);
var result=来自ADC中的f。朋友选择f;
列表搜索结果=新列表();
//ADC是ApplicationDataContext
SearchResult=result.Where(x=>x.UserFriend.Id.Equals(Id)).ToList();
var模型=新的FriendViewModel
{
FriendList=搜索结果
//这是一份清单
};
返回局部视图(模型);
对此

var SearchResult = ADC.AspNetUsers.Select(x=>x.Friend).ToList(); //Maybe you will have FriendNavigation if you don't find Friend relationship.. use intellisense in that case

var model = new FriendViewModel
        {
            FriendList = SearchResult
            //this is a List<Friend>
        };


return PartialView(model);

var SearchResult=ADC.AspNetUsers.Select(x=>x.Friend.ToList()//如果你找不到朋友关系,也许你会有FriendNavigation。。在这种情况下使用intellisense
var模型=新的FriendViewModel
{
FriendList=搜索结果
//这是一份清单
};
返回局部视图(模型);