小编Lad*_*nka的帖子

首先在EF代码中插入/更新逻辑

我想为插入和更新某些EF对象的事件添加一些逻辑.我有一个带有category对象的MVC应用程序,它有一个属性,它是name属性的一个slugified版本.

public class Category
{

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

我想仅在插入和更新事件上设置UrlName属性,因为我的slugify逻辑非常精细.

我知道我可以在上下文本身的SaveChanges()函数中添加一些逻辑,但我更愿意将代码放在实体本身附近.

有没有办法首先使用EF代码完成这样的事情?

events entity-framework entity-framework-4.1

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

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

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

entity-framework-5

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

首先部署实体框架代码

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

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

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

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

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

谢谢.

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

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

如何在Entity Framework 4.1中获取主键,即使用DbContext

我在这里看到的答案是ObjectContext.使用DbContext时是否有确定实体主键名称的属性?

啊..其中一个我希望实体框架是开源的!我可以从.Find方法收集这个主键名称信息:-)

entity-framework entity-framework-4.1

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

在实体框架中使用模型第一种方法迁移

我已经设置了一个系统,我采用了模型第一种方法,因为它对我来说更具逻辑意义.现在,即使我在模型中有一些变化,我现在所做的是 -

  1. 使用实体框架的模型功能生成数据库.我创建一个虚拟数据库并应用这些脚本.它首先删除我的所有数据和表,然后使用由实体框架生成的最新sql文件更新数据库.
  2. 现在,我使用Visual Studio的模式比较功能,并为我的本地数据库以及正在生产的数据库生成迁移脚本.
  3. 我手动浏览脚本并验证它们.完成后,我在生产实例上运行迁移脚本.

问题:主要问题是真的很乏味,因为我是从本地系统进行的,连接到我的prod数据库非常慢,有时我的视觉工作室也会崩溃.有没有更清洁的方法来做到这一点?哪个更自动化,以至于我的笔记本电脑对生产实例上的数据库迁移不负实际责任?

database automation entity-framework-4.1 ef-migrations ef-model-first

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

我们应该在用户故事中使用角色吗?

" 用户故事应用 "一书包含讨论角色的单页.书中人物角色的定义是:

角色是用户角色的虚构表示.

它进一步讨论了角色的定义:

创建角色需要的不仅仅是为用户角色添加名称.应充分描述角色,团队中的每个人都觉得他们知道角色.

它还建议在互联网或杂志上查找照片,并将此照片用于角色,以便每个人都可以清楚地想象使用该应用程序的角色.

好.所有这些想法听起来都不错 将角色定义为用户角色可能很有趣但值得吗?使用它们时是否有任何真实或可测量的质量或提高的效率?

你有什么好的例子,人物角色真的有助于开发团队吗?您是否在用户故事中使用角色?

编辑:

我在MSDN中找到了关于角色的好文章.

agile scrum user-stories

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

实体框架代码首先是不创建数据库

以下是我的解决方案的概述:

在此输入图像描述

这是我的PizzaSoftwareData类:

namespace PizzaSoftware.Data
{
    public class PizzaSoftwareData : DbContext
    {
        public DbSet<Customer> Customers { get; set; }
        public DbSet<Order> Orders { get; set; }
        public DbSet<Product> Products { get; set; }
        public DbSet<User> Users { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据Scott Guthrie博客上的一个示例,您必须在应用程序的开头运行此代码才能创建/更新数据库架构.

Database.SetInitializer<PizzaSoftwareData>(new CreateDatabaseIfNotExists<PizzaSoftwareData>());
Run Code Online (Sandbox Code Playgroud)

我在PizzaSoftware.UI中运行Program.cs中的那行代码.

namespace PizzaSoftware.UI
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Database.SetInitializer<PizzaSoftwareData>(new CreateDatabaseIfNotExists<PizzaSoftwareData>());
            Application.Run(new LoginForm());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么数据库没有创建表? …

c# ef-code-first entity-framework-4.1

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

实体框架代码首先对现有表进行多对多设置

我有以下表Essence,EssenseSetEssense2EssenceSet

Essense2EssenceSet 是创建M:M关系的链接表.

虽然在EF代码中,我一直无法使M:M关系正常工作.

这是我的代码:

[Table("Essence", Schema = "Com")]
    public class Essence
    {
        public int EssenceID { get; set; }
        public string Name { get; set; }
        public int EssenceTypeID { get; set; }
        public string DescLong { get; set; }
        public string DescShort { get; set; }
        public virtual ICollection<EssenceSet> EssenceSets { get; set; }
        public virtual EssenceType EssenceType { get; set; }
    }

    [Table("EssenceSet", Schema = "Com")]
    public class EssenceSet
    {
        public int …
Run Code Online (Sandbox Code Playgroud)

mapping many-to-many entity-framework code-first entity-framework-4.1

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

实体框架4.1默认急切加载

我正在使用Entity Framework 4.1代码的第一种方法.

我希望将eager加载作为我的dafault配置,并避免在每个提取查询中使用Include扩展方法.

我在MSDN中建议,在DbContext构造函数中更改简单的lazy属性:

public class EMarketContext : DbContext
{
    public EMarketContext()
    {
        // Change the default lazy loading to eager loading
        this.Configuration.LazyLoadingEnabled = false; 
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法不起作用.我必须使用Include方法在每个查询中执行预先加载.有什么想法吗?提前致谢.

entity-framework eager-loading entity-framework-4.1

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

Entity Framework 5模型首先 - IDisposable在哪里消失了?

首先在Entity Framework 5模型中,由于生成类文件的方式,似乎存在一些重大更改(不再生成代码,但是T4模板)

2个例子:

  • 生成的上下文文件不再实现IDisposable
  • 没有一个构造函数不再需要连接字符串

是否有更多的突破性变化?他们的解决方案是什么?

entity-framework entity-framework-5 ef-model-first

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