标签: entity-framework-5

如何在EF 5.0中禁用自动表创建?

我在我的项目中为Framework 4.0安装了Entity Framework 5.0 RC.但是当我尝试从Views中获取数据时,我得到了错误.EF尝试为此实体创建表.

entity-framework-5

15
推荐指数
2
解决办法
9032
查看次数

如何从Entity Framework 4.3升级到EF 5

目前我们正在开发EF 4.3.我们想将其升级到EF5.我有谷歌升级过程的步骤,但我没有得到任何结果.请帮我..!

谢谢.. :)

entity entity-framework entity-framework-4 entity-framework-5

15
推荐指数
1
解决办法
9933
查看次数

EF:如何在交易中两次调用SaveChanges?

使用Entity Framework(在我的例子中是代码),我有一个操作,需要我调用SaveChanges来更新DB中的一个对象,然后再次SaveChanges来更新另一个对象.(我需要第一个SaveChanges来解决EF无法确定首先更新哪个对象的问题).

我试过做:

using (var transaction = new TransactionScope())
{
    // Do something

    db.SaveChanges();

    // Do something else

    db.SaveChanges();

    tramsaction.Complete();
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在第二次SaveChanges调用时遇到异常,说"底层提供程序在打开时失败".内部异常表示我的机器上未启用MSDTC.

现在,我在其他地方看到了描述如何启用MSDTC的帖子,但似乎我还需要启用网络访问等.这听起来像是完全矫枉过正,因为没有涉及其他数据库,更不用说其他服务器了.我不想做一些会使我的整个应用程序不那么安全(或更慢)的东西.

当然必须有一个更轻量级的方法(理想情况下没有MSDTC)?!

msdtc entity-framework transactionscope sql-server-2012 entity-framework-5

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

实体框架5 - 如何从现有数据库生成POCO类

我正在使用VS 2012和EF 5.我有一个现有的数据库,我想从现有数据库创建POCO类.我按照步骤将ADO.NET实体数据模型添加到我的项目中.我通过向导使用现有数据库.然后在设计器打开的情况下创建edmx和tt文件.但是,我想创建POCO对象并使用它们.Microsoft网站声明POCO实体框架生成器已过时,我应该使用DBContext Generator.我无法弄清楚我用来生成POCO类的步骤.我只看到edmx设计师.我甚至不想要一个edmx文件,而只需要POCO类.如何使用EF 5和VS 2012从现有数据库中创建POCO类?

entity-framework poco entity-framework-5

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

我需要在OnModelCreating(DbModelBuilder模型构建器)函数中添加什么来定义Person和Role之间的关系?

我在WinForms项目中使用EntityFramework 5.0版,.net 4.5.

我为我创建了2个重要的实体

    public class Role
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public string Name { get; set; }
        public bool StockPermission { get; set; }
        public bool ItemPermission { get; set; }
        public bool OrderPermission { get; set; }
        public bool PersonPermission { get; set; }
        public bool StatisticPermission { get; set; }
    }

    public class Person
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public String Name { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework dbcontext entity-framework-5

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

我应该如何在Entity Framework Code 5.0中将数据种子化为多对多关系

我在EF 5.0中迈出了第一步,我有很多关系.电影可以有多种类型和类型可以有多个电影

public class Movie
{
    public int MovieId { get; set; }
    [Required]
    public string Name { get; set; }

    public virtual ICollection<Type> Types { get; set; }
}


public class Type
{
    public int TypeId { get; set; }
    public string MovieType { get; set; }

    public virtual ICollection<Movie> Movies { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我生成数据库时,它会在Movie和type之间创建多对多

那么,我应该怎样做才能将这个多表种子播种?我在这里尝试了很多解决方案,但它没有用.

此外,这是使用EF代码首先生成多对多关系的最佳方法

entity-framework ef-code-first entity-framework-5

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

EntityFramework 5过滤包含的导航属性

我想找到一种方法使用Linq将导航属性过滤到相关实体的子集.我知道围绕这个主题的所有答案建议做一个匿名选择器,如:

query.Where(x => x.Users.Any(y => y.ID == actingUser.ID))
    .Select(x => new
    {
        Event = x,
        Discussions = x.Discussions.Where(actingUser.GenerateSecurityFilterFor<Domain.Discussion>())
    })
    .OrderBy(x => x.Discussions.Count())
    .ThenBy(x => x.Event.Name);
Run Code Online (Sandbox Code Playgroud)

但是,由于我们的查询生成的一般性质,这显然不太理想,如果你抛出探查器,也会产生非常可怕的SQL查询.

我希望能够完成以下事情:

query.Include(x => x.Discussions.Where(actingUser.GenerateSecurityFilterFor<Domain.Discussion>()))
        .OrderBy(x => x.Discussions.Count())
        .ThenBy(x => x.Name);
Run Code Online (Sandbox Code Playgroud)

我知道这是不是在EF5(或与此有关的任何版本)的支持,但必须有完成约束的结果通过LINQ的不钻研匿名类型select语句设置的方式.

我试图做一些事情:

query.GroupJoin(discquqery, 
    x => x.ID,
    x => x.Event.ID, 
    (evt, disc) => evt.Discussions = disc.Where(actingUser.GenerateSecurityFilterFor<Domain.Discussion>())).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,您无法在lambda表达式中进行赋值,并且在此处选择匿名类型会导致使用select时遇到的相同困境.

我想我无法理解为什么EF没有提供一种方法(我能找到)来生成:

SELECT
    --Properties
FROM Event e
LEFT OUTER JOIN Discussions d
    ON e.ID = d.EventID AND --Additional constraints
WHERE
    --Where conditions
ORDER BY
    --Order Conditions
Run Code Online (Sandbox Code Playgroud)

在SQL中约束连接是如此简单,HAS也是通过Linq实现它的一种方式.

PS:我已经搜索了堆栈,MSDN,专家交流等.请认识到这不是重复.甚至触及这个问题的任何一个都有一个警告"它无法完成"的答案或根本没有答案.没有什么是不可能的......包括这个.

c# linq entity-framework-5

15
推荐指数
1
解决办法
8555
查看次数

无法删除该对象,因为在实体框架5中的ObjectStateManager中找不到该对象

我正在尝试使用EntityFramework 5删除对象,但我收到此错误. 无法删除该对象,因为在ObjectStateManager中找不到该对象
我正在使用EF5中不存在的Remove()方法DeleteObject().任何人都可以帮助我错过的东西吗?

这对删除不起作用

localDb.Customers.Remove(new Customer() { CustomerId = id });
                localDb.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我尝试从msdn将状态更改为Deleted的另一件事.但在这里它给出了一个错误,说所有的字段都应该存在.是否有必要获取完整的记录然后删除?

var customer = new Customer(){ CustomerId = id };
                localDb.Customers.Attach(customer);

                localDb.Entry(customer).State = EntityState.Deleted;
                localDb.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

有什么投入?

c# entity-framework-5

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

如何在Entity Framework/SQL Server 2008项目中切换到datetime2

我们有一个Entity Framework 5.0项目,它使用SQL Server 2008进行代码优先迁移,但所有日期属性都是作为datetime列在数据库中创建的- 而不是datetime2.

是否可以使用将更新datetime数据库中所有列的添加迁移来创建迁移?有没有其他简单的方法切换到datetime2任何地方?

.net sql-server ef-migrations entity-framework-5

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

"还原自动迁移"是什么意思?

改变源控制分支,运行更新的数据库的回滚到先前的迁移之后,EF有时会显示文本"还原自动迁移",象下面这样:

Reverting automatic migration: 201305171619008_DescriptiveNameForMigration.
Reverting code-based migration: 201305162023299_Init.
Run Code Online (Sandbox Code Playgroud)

实体框架如何确定迁移应该是自动的,它的作用有何不同?

以下是如何重现它,假设您已经设置了一个已经设置了代码优先迁移的项目:

  1. 切换到源代码管理中的新分支
  2. 对模型,映射器进行更改并添加迁移
  3. 更新数据库
  4. 切换回默认分支
  5. Update-Database -TargetMigration:0 -Force
  6. 请参阅Update-Database命令的结果中的"还原自动迁移"

这就是我认为正在发生的事情,如果我错了,请纠正我.

  • Update-Database枚举__MigrationHistory中的迁移
  • 它在项目中找到相应的迁移文件并调用Down()方法
  • 如果相应的迁移文件不存在,那么它执行的最佳猜测如何基于在__MigrationHistory快照回滚迁移

database ef-migrations entity-framework-5

14
推荐指数
1
解决办法
799
查看次数