gpt4 book ai didi

entity-framework-4 - 按 ID 进行 EF4 通用搜索

转载 作者:行者123 更新时间:2023-12-04 06:51:16 24 4
gpt4 key购买 nike

我有 x 个表,所有表都有一个 uniqueidentifier/guid 主键。我想编写一个通用函数,该函数将采用 Guid 参数 id,其中 T 是 EntityObject 像这样......

public T SelectById<T>(Guid id) where T : EntityObject

这似乎是一件很简单的事情。我已经在互联网上搜索并无法找到一种方法,更不用说优雅的方法了。我在这里错过了什么,为什么这很难?

最佳答案

为了实现这一点,您需要确保实体上的 ID 属性符合命名约定,例如 Id 或 EntityName_Id。然后你所要做的就是使用一点点反射来构建 EntityKey。

         ObjectStateEntry entry;

var entityKey = new EntityKey(Context.DefaultContainerName + "." + typeof(T).Name, "Id", id);

object entity = null;
if (!Context.ObjectStateManager.TryGetObjectStateEntry(entityKey, out entry) || entry.Entity == null)
{
try
{
entity = Context.GetObjectByKey(entityKey);
}
catch (ObjectNotFoundException)
{

}

}

return (T)entity;

关于entity-framework-4 - 按 ID 进行 EF4 通用搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086279/

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