gpt4 book ai didi

c# - 我可以制作一个接受多个表和通用类型的通用 CompiledQuery 吗?

转载 作者:行者123 更新时间:2023-11-30 22:50:42 24 4
gpt4 key购买 nike

我有多个带有“id”组件的表。我想使用 LINQ 从这些表之一获取具有正确 LINQ-To-SQL 类型的项目,但只使用一个 CompiledQuery。

这是一个当前有效的示例。假设在 DBML 中定义的对象类型是“myitem”,它的表是“myitems”。

    var getOneItem = CompiledQuery.Compile(
(MyDataContext db, long id) => ((from i in db.myitems
where i.id == id
select i).SingleOrDefault()));

我想做这个,类型可以是“myitem”、“myitems2”或我可能感兴趣的任何表和对象类型。

    var getOneItemAnyTable = CompiledQuery.Compile(
(Table tab, Type T long id) => ((from anItem in tab<T>
where anItem.id == id
select anItem).SingleOrDefault()));

我编造了这个语法,因为我不确定这里的语法应该是什么样子。如果可能的话有什么想法吗?我是否必须修改 DBML 来为所涉及的类型创建某种父类(super class)?

谢谢。

最佳答案

与其这样做,不如从一个在您的实体中具有共同属性(如 Id)的基本实体派生所有实体。使用 POCO 实现这些层将对您有所帮助。

关于c# - 我可以制作一个接受多个表和通用类型的通用 CompiledQuery 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/440474/

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