gpt4 book ai didi

c# - 未知类型的 LINQ Where 表达式

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:18 24 4
gpt4 key购买 nike

我有一个数据库,其中所有表都有一个名为 ID 的主键。

我不想为我的所有表制作多个 GetObjectForId,我想制作一个采用 IQueryable 和 Type 的通用方法,然后尽可能尝试从 IQueryable 选择中获取对象。

我是这样想的:

public IQueryable<Type> GetObjectForIdInCollection(IQueryable selection, Type t, int id)
{
return selection.Cast<T>().Where(c => c.ID == id).FirstOrDefault()
}

显然这段代码是完全错误的,但你明白我要做什么。

这是个好主意吗?我该如何实现这个方法?

最佳答案

如果您使用代码优先,那么您可以创建 BaseEntity 类并从该类派生所有实体。

public abstract class BaseEntity
{
public int ID { get; set; }
}

然后,

public T GetObjectForIdInCollection<T>(IQueryable<T> selection, int id)
where T : BaseEntity
{
return selection.Where(c => c.ID == id).FirstOrDefault();

// Or you can simply use:
// return selection.FirstOrDefault(c => c.ID == id);
}

关于c# - 未知类型的 LINQ Where 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300588/

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