小编Ami*_*mit的帖子

使用实体框架加载嵌套实体/集合

我试图在一次调用中急切地加载所有相关实体或实体集合.我的实体看起来像:

Class Person
{
    public virtual long Id { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
}

Class Employee
{
    public virtual long Id { get; set; }
    public DateTime AppointmentDate { get; set; }
    public virtual ICollection<EmployeeTitle> Titles { get; set; }
    public virtual Person Person { get; set; }
}

Class EmployeeTitle
{
    public virtual long Id { get; set; }
    public virtual bool IsCurrent { …
Run Code Online (Sandbox Code Playgroud)

c# entity-relationship code-first eager-loading entity-framework-4.1

18
推荐指数
2
解决办法
2万
查看次数

首先使用Entity Framework代码存在父记录时,在子表中插入记录

我已经在数据库中插入了一些父记录.现在我想添加一些子记录.为此,我按照以下步骤操作:

  1. 检索父(A)记录
  2. 创建一个新的子(B)记录
  3. 将父记录添加到Child的Navigation属性.BA = A.
  4. 致电SaveChanges.

问题是,当我这样做时,EF插入一个New Parent,然后添加一个外键指向新新插入的父项,而不是只插入映射到已存在父项的子项.我还在保存子项时检查了父项的主键,它确实存在于数据库中.

请注意,我正在为父和子使用数据库生成的标识.我注意到的一件事是,如果我从同一个上下文对象添加/保存父和子,那么它工作正常.

需要尽快解决这个问题.任何帮助将不胜感激.

entity-framework parent-child ef-code-first entity-framework-4.1

7
推荐指数
1
解决办法
8061
查看次数

如何在多个Asp.net MVC应用程序中使用通用布局和样式

我有一个可视化工作室解决方案,其中包含多个具有相同外观和感觉的telerik MVC4剃须刀项目.我不想在所有MVC4项目中复制相同的布局,CSS /样式,图像和js文件.实现这种可重用性的最佳方法是什么?我尝试创建一个commonUI项目的虚拟目录,并试图在_ViewStart.cshtml中使用http:// localhost / ...引用_layout.cshtml,但它抱怨说"http:/localhost/MyMvcApp/Views/Shared/_Layout.cshtml '不是有效的虚拟路径."

请帮忙!

asp.net-mvc layout telerik-mvc razor asp.net-mvc-4

6
推荐指数
1
解决办法
7175
查看次数

实体框架+多级继承+ EF代码优先

我正在尝试使用Code First设置TPC继承.我有一个三级层次结构.抽象类A,具体类B继承自A,类C继承自B.类A属性:ID,CreatedBy和CreatedOn.B类属性:FirstName,LastName,BirthDate C类属性:约会日期,状态

我希望在数据库中使用数据库生成的标识创建类B和类C的表.

我的上下文类中有以下代码:

public DbSet<B> BList { get; set; }
public DbSet<C> CList { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<B>().ToTable("BClass");
        modelBuilder.Entity<C>().ToTable("CClass");
    }
Run Code Online (Sandbox Code Playgroud)

我有一个contextinitializer类,它覆盖Seed方法来填充数据库中的一些测试数据.

protected override void Seed(TestContext context)
    {
        TestDataClass testData = new TestDataClass();

        List<B> bList= testData.GetBList();

        foreach (B objB in bList)
        {
            context.BList.Add(objB);
        }

        List<C> cList = testData.GetCList();
        foreach (C objC in cList)
        {
            context.CList.Add(objC);
        }

        context.SaveChanges();
    }
Run Code Online (Sandbox Code Playgroud)

这会在数据库中创建表BClass和CClass,但问题是如果Iam在BClass中插入10行并且在CClass中插入相应的10行,则实体框架在BClass中插入20行,其中10行具有实际值,10行具有Null.CClass给出了10行的预期结果.第二个问题是当我从CClass查询数据时,我没有得到结果.我的错误信息说:

EntitySet'CClass'未在EntityContainer'TestContext'中定义.近简单标识符,第1行,第12列.

我正在使用来自http://huyrua.wordpress.com/2011/04/13/entity-framework-4-poco-repository的 Huy Nguyen的实体框架4 POCO,存储库和规范模式[升级到EF 4.1]的帖子中的代码-and-specification-pattern-upgraded-to-ef-4-1 /和我在通用存储库中的代码看起来像

public IList<TEntity> FindAll<TEntity>() …
Run Code Online (Sandbox Code Playgroud)

inheritance ef-code-first entity-framework-4.1

3
推荐指数
1
解决办法
6932
查看次数