当您不知道主键时,使用T检索记录

迈尔斯·吉布森

我有一个例程来获取给定<T>实体的主键名称但是我不知道使用该值检索记录的语法。

对于给定的例程,例如:

public virtual T GetRecord(int id) 
{
    string keyName = GetKey(T);

    // -------------- this is the part I don't know ---------------
    //
    return context.Entity<T>.Find(x => x.KeyName.Value == id);
    //
    //-------------------------------------------------------------
}

public virtual string GetKey(T entity)
{
    var entityType = context.Model.FindEntityType(typeof(T));
    var primaryKeyName = entityType.FindPrimaryKey().Properties.First().Name;
    var set = context.Set<T>();
    var orderedEntities = (set.OrderBy(e => e.GetType().GetProperty(primaryKeyName).GetValue(e, null))).ToList();
    string keyName = context.Model
                            .FindEntityType(typeof(T))
                            .FindPrimaryKey() 
                            .Properties
                            .Select(x => x.Name)
                            .Single();

    return keyName;
}
等离子狗

您不需要密钥名称。EF已经知道将哪个属性用作主键,因此这应该可以工作:

context.Entry<T>.Find(id)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当您不知道主键时,使用T检索记录

来自分类Dev

当您不知道要问的内容时如何添加标题?

来自分类Dev

当您不知道宽度时从左滑动

来自分类Dev

当您不知道其尺寸时如何移动视图?

来自分类Dev

当您不知道长度时,如何使用ReadAsync方法获取从sslsteam接收的字节长度?

来自分类Dev

当您不知道传递给覆盖函数的参数时,在基类中创建覆盖方法?

来自分类Dev

当您不知道存储它的路径时如何保存 XmlDocument 对象?

来自分类Dev

不知道记录是否存在时,如何使用Entity Framework进行合并?

来自分类Dev

不知道记录是否存在时,如何使用Entity Framework进行合并?

来自分类Dev

如果我不知道GUID,如何使用c#在Microsoft CRM上检索一条记录?

来自分类Dev

如果我不知道GUID,如何使用c#在Microsoft CRM上检索一条记录?

来自分类Dev

当您不知道输入大小(但知道键和值的类型)时,是否可以设置界面的形状?

来自分类Dev

当您不知道属性是什么时,有没有一种方法可以干净地使用javascript中的隐藏类?

来自分类Dev

获取属性的值,而您不知道名称

来自分类Dev

当您不知道有多少个整数时,如何从char字符串中读取整数?(在C中)

来自分类Dev

角度2:当您不知道childComponent的类时,如何将childComponent属性发送给父级?

来自分类Dev

在不知道主键的情况下更新实体

来自分类Dev

JavaScript /不知道如何使用变量

来自分类Dev

不知道如何使用rxjava

来自分类Dev

您不知道JS的Kyle Simpson异步功能:异步与性能

来自分类Dev

如何删除您不知道其正确名称的软件包?

来自分类Dev

您不知道JS:异步和性能-合作并发吗?

来自分类Dev

如何删除您不知道其正确名称的软件包?

来自分类Dev

“您不能在海龟上下文中使用 TICK,因为 TICK 仅适用于观察者。” - 不知道如何修复该错误

来自分类Dev

Arduino数据记录-不知道从哪里开始

来自分类Dev

使用pivot_wider函数时,我在列中不知道

来自分类Dev

当同时使用模板和继承时,我不知道如何重写成员函数

来自分类Dev

capistrano 3.0.1使用capistrano / rails / assets时不知道如何构建任务“启动”

来自分类Dev

事先不知道ndim时处理多维数组

Related 相关文章

  1. 1

    当您不知道主键时,使用T检索记录

  2. 2

    当您不知道要问的内容时如何添加标题?

  3. 3

    当您不知道宽度时从左滑动

  4. 4

    当您不知道其尺寸时如何移动视图?

  5. 5

    当您不知道长度时,如何使用ReadAsync方法获取从sslsteam接收的字节长度?

  6. 6

    当您不知道传递给覆盖函数的参数时,在基类中创建覆盖方法?

  7. 7

    当您不知道存储它的路径时如何保存 XmlDocument 对象?

  8. 8

    不知道记录是否存在时,如何使用Entity Framework进行合并?

  9. 9

    不知道记录是否存在时,如何使用Entity Framework进行合并?

  10. 10

    如果我不知道GUID,如何使用c#在Microsoft CRM上检索一条记录?

  11. 11

    如果我不知道GUID,如何使用c#在Microsoft CRM上检索一条记录?

  12. 12

    当您不知道输入大小(但知道键和值的类型)时,是否可以设置界面的形状?

  13. 13

    当您不知道属性是什么时,有没有一种方法可以干净地使用javascript中的隐藏类?

  14. 14

    获取属性的值,而您不知道名称

  15. 15

    当您不知道有多少个整数时,如何从char字符串中读取整数?(在C中)

  16. 16

    角度2:当您不知道childComponent的类时,如何将childComponent属性发送给父级?

  17. 17

    在不知道主键的情况下更新实体

  18. 18

    JavaScript /不知道如何使用变量

  19. 19

    不知道如何使用rxjava

  20. 20

    您不知道JS的Kyle Simpson异步功能:异步与性能

  21. 21

    如何删除您不知道其正确名称的软件包?

  22. 22

    您不知道JS:异步和性能-合作并发吗?

  23. 23

    如何删除您不知道其正确名称的软件包?

  24. 24

    “您不能在海龟上下文中使用 TICK,因为 TICK 仅适用于观察者。” - 不知道如何修复该错误

  25. 25

    Arduino数据记录-不知道从哪里开始

  26. 26

    使用pivot_wider函数时,我在列中不知道

  27. 27

    当同时使用模板和继承时,我不知道如何重写成员函数

  28. 28

    capistrano 3.0.1使用capistrano / rails / assets时不知道如何构建任务“启动”

  29. 29

    事先不知道ndim时处理多维数组

热门标签

归档