gpt4 book ai didi

c# - 使用 Linq 的属性选择器和 Where 查询

转载 作者:太空狗 更新时间:2023-10-30 00:20:56 26 4
gpt4 key购买 nike

我正在尝试这样做:

public class SomeEntityClass
{
public Guid MyClassProperty {get;set;}
}

public class AnotherEntityClass
{
public Guid AnotherProperty {get;set;}
}

public T GetByProperty<T>(Guid value, Expression<Func<T, object>> selector)
{
return = Session.Query<T>().Where(x => selector == value).FirstOrDefault();
}

应该叫:

Repository.GetByProperty<SomeEntityClass>(Guid.NewGuid(), x => x.MyClassProperty );
Repository.GetByProperty<AnotherEntityClass>(Guid.NewGuid(), x => x.AnotherProperty);

但它不起作用。

有什么帮助吗?

谢谢。

最佳答案

尝试使用类似的东西:

public T GetByProperty<T, TValue>(TValue value, Expression<Func<T, TValue>> selector) {
var predicate = Expression.Lambda<Func<T, bool>>(
Expression.Equal(selector.Body, Expression.Constant(value)),
selector.Parameters
);

return Session.Query<T>().Where(predicate).FirstOrDefault();
}

关于c# - 使用 Linq 的属性选择器和 Where<T> 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8150233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com