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
});