【发布时间】:2011-10-15 19:46:06
【问题描述】:
我想实现与Combine several similar SELECT-expressions into a single expression 非常相似的东西,但是代码不适用于我的情况。
我想传递 2 个 keySelectors(属性)并想将它们组合起来用于 EF 4.1 选择查询。
作为一个例子看下面的代码:
public class Category
{
public int CategoryId { get; set; }
[Required(ErrorMessage = "Name required.")]
[StringLength(25, ErrorMessage = "Must be less than 25 characters.")]
public string Name { get; set; }
public string Description { get; set; }
public DateTime? CreateDateTime { get; set; }
}
public class SampleContext : DbContext
{
public SampleContext() : base("Sketch7.Sample") { }
public DbSet<Category> Categories { get; set; }
}
public static class Repository
{
public Dictionary<TKey, TKeyValue> GetKeyValue<TKey, TKeyValue>(Expression<Func<TEntity, TKey>> keySelector, Expression<Func<TEntity, TKeyValue>> valueKeySelector)
{
var combined = //ToDo Select Combine here...
SampleContext db = new SampleContext();
var result = db.Categories.Select(combined);
...
return dictionary;
}
}
用法
public void GetKeyValueTest()
{
Repository.GetKeyValue(x => x.Id , x => x.Name);
}
谁能帮帮我!
【问题讨论】:
-
however the code is not working for my case.错误描述是什么意思? -
我更新了代码,以便您更好地理解并测试我的场景。 (我没有测试那个样本,但它应该可以工作)。谢谢
标签: c# lambda entity-framework-4.1 expression expression-trees