を使用してクエリが含まれています:私は/に投稿するSystem.Linq.Dynamicライブラリを使用したいは、MS SQLInまたは背景System.Linq.Dynamic
にクエリが含まれています、私はシステムを使用しようとしていますのでご注意ください。私はCustomerId(整数)プロパティを持つ任意のクラスに顧客のフィルタを適用することができるように汎用関数のLinq.Dynamic。また、CustomerIdプロパティはnull可能である可能性があります
すべての投稿はthis solutionにリダイレクトされます。 "System.Linq.Enumerable型の汎用メソッド 'Contains'は、指定された型引数および引数と互換性がありません。メソッドが非汎用型の場合は、型引数は指定しないでください。 "
public static IQueryable<T> ApplyCustomerFilter<T>(this IQueryable<T> collection, int[] customerIds)
{
return collection.Where("@0.Contains(outerIt.CustomerId)", customerIds);
}
public class MyUser : IdentityUser
{
[Required]
[MaxLength(50)]
public string FirstName { get; set; }
[Required]
[MaxLength(50)]
public string LastName { get; set; }
public int? CustomerId { get; set; }
[ForeignKey(nameof(CustomerId))]
public virtual Customer Customer { get; set; }
}
私が間違っているつもりですどこが私を導いてもらえ:
そして今、これは私のコードはどのように見えるかですか?
これは「T is int」のときにのみ機能すると思いますが、ジェネリック関数は非ジェネリックではなくなりますか? – oerkelens
それは事実ではありません。顧客IDを持つどのクラスでも動作します。 –