Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 在包含存储库方法中调用多个Lambda表达式_C#_Asp.net Mvc_Linq_Entity Framework - Fatal编程技术网

C# 在包含存储库方法中调用多个Lambda表达式

C# 在包含存储库方法中调用多个Lambda表达式,c#,asp.net-mvc,linq,entity-framework,C#,Asp.net Mvc,Linq,Entity Framework,我找到了这个通用存储库,但我确实找到了使用它的方法: public T FindSingle(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes) { var set = FindIncluding(includes); return (predicate == null)

我找到了这个通用存储库,但我确实找到了使用它的方法:

    public T FindSingle(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes)
    {
        var set = FindIncluding(includes);

        return (predicate == null) ? set.FirstOrDefault() : set.FirstOrDefault(predicate);
    }
消息类:

public class Message
{
    // Primary properties
    public int Id { get; set; }
    public string NameFrom { get; set; }
    public string EmailFrom { get; set; }
    public string TelephoneFrom { get; set; }
    public string Title { get; set; }
    public string MessageText { get; set; }
    public bool? Approved { get; set; }
    public DateTime DateCreated { get; set; }
    public DateTime? DateRead { get; set; }

    // Navigation properties
    public Member MemberFrom { get; set; }
    public Member MemberTo { get; set; }
    public MessageType MessageType { get; set; }
    public Message MessageParent { get; set; }

    public Ad Ad { get; set; }
    public Ask Ask { get; set; }
}

谢谢。

这是一个编译方法的版本:

public T FindSingle<T>(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes)
{
    var set = FindIncluding(includes);

    return (predicate == null) ? set.FirstOrDefault() : set.FirstOrDefault(predicate);
}

你试过没有“包含:”部分吗?只是让
params
部分正常工作?嗨,是的,但它不工作。“它不工作”并不能充分说明问题所在。我无法编译,我总是得到下面的代码。我怀疑你得到的不止这些。我怀疑你从编译器那里得到了一条错误消息。这些是你在问题中应该说的。请读《你好》,谢谢。你说的“你需要用你真正使用的对象替换T”是什么意思?我尝试了Message,但我在IncludeMessage中使用的相关实体的值为null。Message类是否有对其他类的引用?你能把信息类添加到问题中吗?嗨,是的,我已经把它包括在问题中了。
public T FindSingle<T>(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes)
{
    var set = FindIncluding(includes);

    return (predicate == null) ? set.FirstOrDefault() : set.FirstOrDefault(predicate);
}
Message messageParentDomain = 
    _messageRepository.FindSingle<Message>(
        m => m.Id == messageDto.MessageParent_Id, 
        includes: new Expression<Func<Message, object>>[] {
            i => i.MemberFrom,
            i => i.MemberTo
        });