相关疑难解决方法(0)

如何在每个层次结构(TPH)映射中共享公用列名称

我正在使用Entity Framework 4 CTP5代码第一种方法,我有一个每层次表(TPH)映射.层次结构中的某些类具有共同的属性.

public class BaseType
{
    public int Id { get; set; }
}

public class A : BaseType
{
    public string Customer { get; set; }
    public string Order { get; set; }
}

public class B : BaseType
{
    public string Customer { get; set; }
    public string Article { get; set; }
}

public class C : BaseType
{
    public string Article { get; set; }
    public string Manufacturer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

默认约定将此映射到以下列: …

.net c# mapping entity-framework-4 ef-code-first

24
推荐指数
2
解决办法
6867
查看次数

如何过滤嵌套集合Entity Framework对象?

这是问题所在:我需要返回带有过滤嵌套集合的对象集合.例如:有一个带有订单的商店,我需要返回一个包含商店的集合,这些商店包含带有订单的嵌套集合,但没有标记为已删除的客户的订单.

这是我尝试做的.但仍然没有运气.任何建议值得赞赏:)

public List<StoreEntity> GetStores(Func<Store, bool> storeFilter, Predicate<OrderEntity> orderFileter)
{
    IQueryable<StoreEntity> storeEntities = Context.Stores
        .Include(o => o.Order)
        .Include(cu => cu.Orders.Select(c => c.Customer))
        .Where(storeFilter)
        //.Where(rcu=>rcu.Orders.Select(cu=>cu.Customer.Deleted==false)) //just test this doesn't work
        .AsQueryable();

    List<StoreEntity> storeEntities = storeEntities.ToList();

    //storeEntities.ForEach(s => s.Orders.ToList().RemoveAll(c=>c.Customer.Deleted==true)); // doesn't work

    foreach (StoreEntity storeEntity in storeEntities)
    {
        storeEntity.Orders.ToList().RemoveAll(r=>r.Customer.Deleted==true);
    }

    return storeEntities;
}
Run Code Online (Sandbox Code Playgroud)

问题是没有应用过滤器.已将已删除标记设置为true的客户留在集合中.

linq entity-framework filtering entity-framework-4.1

23
推荐指数
1
解决办法
5万
查看次数

EF 5条件映射

我在我的MVC应用程序中使用EF 5数据库第一种方法.我的所有表都使用一个名为Deleted的字段,这是一个标记记录被删除的布尔字段.

我试图摆脱每次查询我的数据库时必须检查Deleted == false的要求.这种非常简单的方法是在edmx文件中使用条件映射,其中EF始终返回未删除的数据.这一切都很好.

但是,这个条件映射的问题是,当我想允许用户从地址簿中删除例如地址的某些记录时,我无法访问EF中的删除字段,因为我在条件映射中使用它,因此我必须寻找另一个允许用户删除记录的选项.

我想的方法是创建一个处理删除查询的存储过程,并在我想要删除记录时调用它.

有没有更好的方法呢?是否可以使删除字段可访问,即使它在条件映射中使用?

c# entity-framework asp.net-mvc-4

4
推荐指数
1
解决办法
2771
查看次数

实体框架首先使用代码进行条件映射?

我有一个实体,我只需要返回给定字段值大于零的记录.我在edmx中看到过条件映射的例子,这看起来像我需要的东西.但是,我的项目首先是EF 4.1代码.有没有办法使用代码第一种方法来做到这一点?

c# entity-framework c#-4.0 entity-framework-4.1

0
推荐指数
1
解决办法
2247
查看次数