标签: code-first

Code First添加到集合中?如何使用Code First和存储库?

编辑:这只发生在具有存储库的大型项目中.有没有人使用EF4和CodeFirst方法并使用存储库?请建议我.

你好.我目前正在使用EF4 CodeFirst Classes.在我的测试项目中,我有两个类,作者和书(作者得到书).我正在尝试做的是我在我的作者类中有一个AddBook,但似乎不能像我不能将它添加到集合中..这里是我的类和两个不同的例外.

 public class Book
{
    public virtual int BookId { get; set; }
    public virtual string Title { get; set; }
    public virtual Author Author { get; set; }
}

public class Author
{
    public virtual int AuthorId { get; set; }
    public virtual string Name { get; set; }
    public virtual ICollection<Book> Books { get; set; }

    public Author()
    {
        Books = new Collection<Book>();
    }

    public void AddBook(Book book)
    {
        book.Author = this;
        Books.Add(book);
    }
} …
Run Code Online (Sandbox Code Playgroud)

entity-framework code-first entity-framework-4 asp.net-mvc-2

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

使用Entity Framework ExecuteStoreQuery返回DataTable

我正在使用一个系统,该系统有许多需要显示的存储过程.为每个对象创建实体是不实际的.

是否有可能,我将如何退回DataTable使用ExecuteStoreQuery

public ObjectResult<DataTable> MethodName(string fileSetName) {
using (var dataContext = new DataContext(_connectionString))
{
var returnDataTable = ((IObjectContextAdapter)dataContext).ObjectContext.ExecuteStoreQuery<DataTable>("SP_NAME","SP_PARAM");
return returnDataTable;
}
Run Code Online (Sandbox Code Playgroud)

stored-procedures entity-framework code-first ef-code-first

14
推荐指数
5
解决办法
7万
查看次数

在EF Code First中启用级联删除而不暴露外键

在不暴露外键的情况下执行一对多关系的删除时,EF会删除父记录并尝试使子记录上的外键为空.这当然会导致错误,因为外键不可为空.将外键添加到子类会覆盖此行为,但我宁愿不公开它.

例如,给定以下两个类,我不希望将JobId作为Project类的属性.

public class Job : ModelBase
{
    [Required]
    [StringLength(100)]
    public string Company { get; set; }

    [Required]
    [StringLength(100)]
    public string JobTitle { get; set; }

    public ICollection<Project> Projects { get; set; }
}

public class Project : ModelBase
{
    [Required]
    [StringLength(100)]
    public string Name { get; set; }

    [Required]
    public string Summary { get; set; }

    public int JobId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在EF Code First中启用级联删除而不在关系的多方面暴露外键?

entity-framework one-to-many code-first cascading-deletes

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

首先部署实体框架代码

我想在开始我的项目之前我应该​​想到这一点,但我已经使用代码优先方法成功构建并测试了一个迷你应用程序,我准备将其部署到生产Web服务器.

我已将文件夹移动到我的登台服务器,一切正常.我很好奇是否有建议的部署策略?

如果我对应用程序进行了更改,我不希望在重新启动应用程序时丢失所有数据.

我应该从代码优先项目生成数据库脚本,然后将其移动到我的服务器吗?

任何提示和指南链接都很有用.

谢谢.

deployment entity-framework code-first entity-framework-4.1

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

添加的代码优先实体不是延迟加载属性

我有一个问题,即新添加的实体的属性不是延迟加载的,如果在添加实体后立即需要.

例如:

我有一个具有虚拟JobRole属性的User实体:

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

    public virtual JobRole JobRole { get; set; }
    public int JobRoleId { get; set; }

    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我添加一个新用户:

public User Add(User user)
{
    var addedUser = _myContext.Users.Add(user);
    myContext.SaveChanges();
    return addedUser;
}
Run Code Online (Sandbox Code Playgroud)

然后将返回的对新用户的引用传递给Razor视图,在该视图中它尝试显示JobRole(例如JobRole.Name).在将User传递给View时,它具有:

  • JobRoleId正确设置为整数值.
  • JobRole = null

然后我会期望JobRole在被View使用时被延迟加载,但它不会导致null引用异常.

这是预期的行为,还是有办法让新添加的实体延迟加载其属性?

提前感谢任何想法.

环境:使用Entity Framework 4.2代码优先.启用了延迟加载.

entity-framework lazy-loading code-first

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

使用代码优先实体框架播种数据库 - 外键语法

我试图找到正确的语法来种植具有测试数据的数据库.我的产品表有一个外键.这是类别.我已经在数据库中播放了类别的值,但仍坚持如何将该关系添加到产品中.我试过这种方式无济于事.

context.Categories.AddOrUpdate(x => x.Name,
    new Category
    {
        Name = "Fruit"
    });

context.Products.AddOrUpdate(x => x.Name,
    new Product
    { 
       Name = "Cherries",
       Description = "Bing Cherries",
       Measure = "Quart Box",
       Price = 1.11M,
       Category = context.Categories.FirstOrDefault(x => x.Name == "Fruit")
    }
});
Run Code Online (Sandbox Code Playgroud)

谁能指出我正确的方向?

entity-framework code-first seeding

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

EF4 VS 2010 RTM中的EntityConfiguration在哪里?

我找不到EntityConfiguration.

RC的同样问题在这里,但我认为它将成为RTM版本.它在那里吗?

entity-framework visual-studio-2010 code-first

13
推荐指数
1
解决办法
4980
查看次数

关于Code First数据库演变(又称迁移)

我观看了MSDN BLOG的一个关于数据库迁移的截屏视频.

有谁知道我们什么时候可以使用此功能?看起来它在CTP5中还不起作用.

顺便说一句,在更改架构代码后,有没有办法播种初始数据?

这就是我现在正在做的事情,它每次更改模型时都会擦除所有数据.

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework code-first ef-migrations

13
推荐指数
1
解决办法
2257
查看次数

从EF Code-First DbContext类生成SQL CE数据库

我已经以Entity Framework Code-First约定的方式定义了一组类,并使用System.ComponentModel.DataAnnotations属性注释了类属性.

现在我想从此代码生成SQL Server Compact Edition(SCSE)(4.0)数据库.

需要什么代码才能执行此操作以及需要导入哪些程序集?

到目前为止,我已导入C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition\v4.0\Desktop {System.Data.SqlServerCe.dll,System.Data.SqlServerCe.Entity\System.Data.SqlServerCe. Entity.dll} dll文件.

任何指针赞赏.文章和诸如此类的.

.net entity-framework code-first sql-server-ce ef-code-first

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

如何在Entity Framework 4.4中实现DBSet.AddOrUpdate?

为了回应Slauma对我在Windows XP上运行使用EF的应用程序问题的回答,我 将我的应用程序从Entity Framework 5.0转换回使用Entity Framework 5.0和目标框架.NET 4.0(也称为Entity Framework 4.4)

但是我遇到以下错误;

System.Data.Entity.DbSet<MyEntity> does not contain a definition for AddOrUpdate 
and no extension method of a type System.Data.Entity.DbSet<MyEntity> accepting a 
first argument of type System.Data.Entity.DbSet<MyEntity> could be found.
(Are you missing a using directive or assembly reference )
Run Code Online (Sandbox Code Playgroud)

我已经尝试搜索此错误消息的片段,但没有取得多大成功.奇怪的是,在这个微软链接中甚至没有提到4.4甚至 没有EF4.4的SO标签

entity-framework code-first

13
推荐指数
2
解决办法
8056
查看次数