标签: database-first

首先是MVC3和EF数据:最佳实践是什么?

似乎MVC3和EF4.1的大部分焦点都围绕着"代码优先" - 我似乎无法找到符合以下条件的任何示例或教程:

  • 使用现有的SQLServer数据库
  • 有单独的Web和数据访问项目(我们将有多个Web应用程序共享相同的数据访问类)
  • 验证建议

这样的示例或教程是否存在?是否有任何记录的"最佳实践"如何实现这一点,或者没有以这种方式构建解决方案的理由?

entity-framework entity-framework-4.1 asp.net-mvc-3 database-first ef-database-first

9
推荐指数
1
解决办法
1905
查看次数

如何防止在DataBase First Model中删除DataAnnotations属性

我有我的asp.net mvc 3应用程序与实体框架,我使用Database First模型来设置它.

我的步骤如下:1.使用表生成数据库2.创建ADO.NET实体数据模型文件(.edmx)并导入表3.在设计内部我添加了代码生成项并使用了ADO.NET DbContext Generator 4. a使用所有表格模型制作的Model1.tt持有者

我已经编辑了模型并使用DataAnnotations Attributes更新它们(仅用于众所周知的示例)

public class LogOnModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我对数据库进行更改并将其更新为edmx文件时,所有模型都将被覆盖,DataAnnotations属性将会消失.

我的问题:我如何使用数据库第一模型并仍然编辑模型进行特定验证,如我可以免费使用代码优先模型?(请不要第三方工具解决方案)谢谢

asp.net-mvc entity-framework edmx data-annotations database-first

9
推荐指数
1
解决办法
7660
查看次数

如何为Data-First自动创建的实体添加数据注释?

如果是模型优先,我们使用[MetadataType(typeof(ConceptMetadataSource))]附加MetadataSource文件,其中包含所有数据注释,如 [HiddenInput(DisplayValue = false)][Display(Name = "Title")].

例如:

[MetadataType(typeof(ConceptMetadataSource))]
public partial class Concept
...
Run Code Online (Sandbox Code Playgroud)

现在,我使用数据库优先方法,因为有一个现有的数据库.这次,实体类由edmx模型自动创建.在每个实体类的开头,下面都有注释行:

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

由于一旦我们修改了数据库中的表,代码就会重新生成,每次重新生成实体类时都会删除数据注释.

谁能告诉我注释那些实体类的最佳方法是什么?谢谢.

entity-framework entity-framework-4 asp.net-mvc-3 database-first

8
推荐指数
2
解决办法
7154
查看次数

从数据库中完全取代Entity Framework数据模型似乎是不可能的

基本上,我有一个Sql Server数据库,其架构发生了变化.发生这种情况时,我必须更新EF数据模型.如果我所做的只是添加或删除一个表,这很好:去设计器,从它存在的多个位置之一找到"从数据库更新模型..."并完成向导.

不幸的是,该向导不仅让我从数据库中替换整个模型.它也可以一次只做一件事.因此,如果我做出多个架构更改的不幸决定,甚至更糟,忘记我做了什么:我必须做多个步骤,从模型中添加,刷新和删除表.

这显然很麻烦.因此,由于缺乏更好的程序,我不得不吹掉模型并完成从数据库重新创建它的所有步骤.废话:我在配置文件中留下了连接字符串.现在我必须删除它并启动向导,否则它将不会生成相同的实体类名称,现在我的所有代码都会中断.

为什么这不能为我吹掉模型并从数据库生成?更重要的是,为什么没有其他人问过这个问题呢?人们在做什么?

c# sql-server entity-framework database-first

8
推荐指数
1
解决办法
942
查看次数

实体类型[名称]不是当前上下文的模型的一部分

我使用EF创建模型并使用DbContext 5.X生成器生成其上下文.现在我重命名了我的一个实体的类名.现在当我运行我的代码时,我得到"实体类型Student2不是当前上下文模型的一部分." 错误.

var context = new MyEntities(connectionString);
foreach(var student in context.Students)
{
    Console.WriteLine(class.Name.ToString());
}
Run Code Online (Sandbox Code Playgroud)

在我的数据上下文中.

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    // public DbSet<Student> Students { get; set; } -> Origional
    public DbSet<Student2> Student { get; set; } // I renamed Student to Student2
}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?由于一些冲突,我需要重命名我的班级.

c# poco database-first entity-framework-5

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

Entity Framework DB First - 命名导航属性

我在我的应用程序中使用Entity framework v 6.1.1.

我的数据库有2个表User,Location.

User table
-----------
UserID
HomeCityId(FK -> LocationId)
CurrentCityId(FK -> LocationId)
Location table 
LocationId
LocationName
Run Code Online (Sandbox Code Playgroud)

使用DB First方法,我为这两个表创建了一个Entity数据模型.

生成的User表实体类

public int UserId;
public int HomeCityId;
public int CurrentCityId;
public virtual Location Location { get; set; } 
public virtual Location Location1 { get; set; }
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些虚拟属性命名为HomeCity和CurrentCity而不是Location和Location1

entity-framework navigation-properties database-first ef-database-first

8
推荐指数
1
解决办法
707
查看次数

MVC 3,实体框架4.x,数据库优先,绝望

VS2010 Pro + SqlServer Express.

除了网络(订购了2本书)之外,已经被放入ASP.NET MVC 3而没有任何指导,我甚至无法开始.

我得到的MVC本身.不是问题.PHP,Ruby,甚至可怕的WebForms都牢牢抓住了我的工具带,在此之前有很长的C++ QT客户端 - 服务器开发历史.

使用EF4 ORM将ASP.NET MVC 3 绑定到数据库正在扼杀我.
目标:

  1. 使用DBA建模的数据库.我可以指定所有命名约定,但代码优先不是一个选项!
  2. 导入EDMX.这将使用DBA DB中的VS工具定期更新,不会直接编辑.
  3. 从EDMX生成部分类,用作模型.这将使用VS工具定期更新,从不直接编辑.
  4. 使用'buddy'扩展模型类以上代码,因为需要控制器/视图.
  5. 直观地使用生成的模型,将其传递给视图,将帖子检索到其中以进行插入/保存等等...

我已经看过并阅读了很多关于这个用例的博客,论坛 帖子,演练堆栈 溢出 帖子.我甚至试过骑魔法独角兽,然后是最新的4.2beta1和DbContext发生器.

但无法起步.我按照说明进行操作,只是不明白怎么任何事的.'伙伴'需要什么约定(如果有的话)?我该如何使用它?如何获取数据?我该如何写数据?每个例子都不同.MVC指南始终专注于UI方面.EF指南不包括MVC中的用法.

这些是基本问题,我现在感觉自己是WWW中最无能的白痴.

有没有人正在以我上面描述的方式使用MVC3和EF4.x?

entity-framework-4 asp.net-mvc-3 database-first

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

如何首先使用entityframework数据库获取数据库信息?

当我使用Entity Framework codefirst时,我可以使用以下代码来获取我的数据库连接字符串:

var db = new dbContext();
Console.Writeline(db.Database.Connection.ConnectionString);
Run Code Online (Sandbox Code Playgroud)

但是当我首先执行数据库时,数据库不可用.我如何(从运行时的代码)开始获取实体框架正在使用的数据库连接字符串?

.net entity-framework connection-string entity-framework-4.1 database-first

6
推荐指数
2
解决办法
7085
查看次数

在visual studio 2012中添加外键

我正在Visual Studio 2012中开发我的第一个MVC项目.因为我更喜欢"数据库优先"方法,所以我开始设计数据库.问题是:为什么当我想添加外键时,我禁用了所有关键属性进行编辑(左):

在此输入图像描述

我只能直接修改脚本(右),但这只是解决方案吗?或者我做错了什么?

谢谢你的帮助.

database-first visual-studio-2012

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

在Entity Framework中获取父部门节点

我有一个像这样的SQL表:

myDepartment

DepartmentID是部门的父母.我通过这个表构建了一个树(在ASP.net(C#)项目中):

树

上面树中的记录是:

记录

我需要让父母在这棵树上.

我可以在SQL Server中这样做(例如id=2,id输入参数):

with cte1
as
(
select id,name,DepartmentID, 0 AS level 
from Department 
where id =2
union all 
select Department.ID,Department.name,Department.DepartmentID, level+1  
from Department 
inner join cte1 on Department.ID=cte1.DepartmentID
)
select * from cte1
Run Code Online (Sandbox Code Playgroud)

输出(id = 2(A))

产量

输出(id = 4(A1))

两个更高级别

我知道EF不支持cte,但我需要在EF中获得此结果.

如果有人可以解释这个问题的解决方案将是非常有帮助的.

c# sql-server entity-framework database-first

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