私はこのようなものが必要です:
context.EntitiesDbSet.Keys.Where(predicate);
And predicate here is of typeExpression<Func<Entity,bool>>
現時点でわかっている唯一の解決策は、メタデータ分析によって生成されたプロジェクションを使用することです。もっと簡単な方法はありますか?
私はこのようなものが必要です:
context.EntitiesDbSet.Keys.Where(predicate);
And predicate here is of typeExpression<Func<Entity,bool>>
現時点でわかっている唯一の解決策は、メタデータ分析によって生成されたプロジェクションを使用することです。もっと簡単な方法はありますか?
私が知っている 1 つの方法は、リフレクションによるものです。エンティティで KeyAttribute を使用し、エンティティで KeyAttribute のプロパティを検索します。例:
using System;
using System.ComponentModel.DataAnnotations;
namespace HelloWorld
{
public class MyEntity
{
[Key]
public int EntityID { get; set; }
public string Name { get; set; }
}
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Type myType = typeof(MyEntity);
var myProps = myType.GetProperties().ToList()
.Where(prop => prop.GetCustomAttributes(true).Any(a => a is KeyAttribute));
foreach (var element in myProps) {
Console.WriteLine(element.Name);
}
}
}
}
それが役立つと思います。