EF实体框架创建方法

EF实体框架创建方法:

1、添加EF框架:

在工程中,先添加文件夹:DataModel(方便管理),在文件夹中再添加新项:数据--ADO.Net实体数据模型:
命名为: DataModel.edmx。并勾选“确定对象名称的单复数形式”(会创建集合和项的名称区别)。

2、数据模型文件说明:

DataModel.edmx:生成的数据模型文件包。
DataModel.Context.cs:包括模型中,所有表集合的管理类。
DataModel.tt子节点下的文件:表数据类的定义(映射)。

3、问题:

1、生成数据模型以后,很多外键,需要手动修改。--不需修改。

2、需要手动创建一些枚举变量(在模型浏览器中)。

自动生成很多Nullable<byte>变量,对于记录状态的字段,需要手动定义枚举类型。

Nullable<byte>:表示可以为空的<byte>类型字段。---不需修改。

定义枚举类型方法:----重点!

以 (任务表)中的任务状态为例:
1)点击数据库模型文件 DataModel.edmx,左侧显示数据库关系图,在关系图中任意单击,
在解决方案管理器旁边选择“模型浏览器”。

2)DataModel--实体类型中,选择xx表,右键“在关系图中显示”。在图中的字段右键“转换到枚举”,然后定义即可。

建议:但是这样定义比较麻烦,可以先自定义枚举类型,然后进行引用。
这样的好处是:1.当删除数据模型时,枚举定义还在,只需重新添加枚举类型引用即可!
2.以后修改,更加灵活。

引用方法:

勾选“引用外部类型”,添加“命名空间.枚举类型名”,并还要在“枚举类型名”上添加“枚举类型名”即可。
(此处有Bug,当枚举类型已使用过,不能再重复使用,需要重新创建并改名!)

说明:如果定义错误了,或者想修改:
1.不建议:先删除表,然后右键“从数据库更新模型”即可恢复原来的表。(杀鸡用了牛刀了)
2.建议方法:字段属性--类型,改为原来的类型,如Byte。并删除模型浏览器中对应的枚举类型。

3)然后,编译通过即可。

说明:在模型浏览器中,表右键--“表映射”,可查看字段映射后的对应类型。

注意:建议模型创建以后,只更新数据模型,如果删除数据模型,重新建立时还需要重新添加引用!!

命名空间:

DataService.DataDomain.StatusType
DataService.DataDomain.ImageType

4、数据模型的使用:

using (DataEntities entities = new DataEntities())
{
s_role item = new s_role();
item.role_id = Guid.NewGuid();
item.role_name = "管理员";

entities.s_role.Add(item);
entities.SaveChanges();
}

数据库用户:

5、常见问题:

问题1、指定的架构无效。错误:
找不到概念类型“DataModel.ChildStatusType”的对应对象层类型。
以下信息对于解决上一个错误可能很有用:
CLR 枚举类型的基础类型与 EDM 枚举类型的基础类型不匹配。

解决方法:枚举类型数据结构与DB数据类型不一致,枚举定义添加基类byte等。如下

public enum StatusType : byte
{
NoProcess = 0,
Processing,
Processed,
}

问题2、连接本地DB正确,连接远程DB报错:

由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从

ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或在打开每个 Microsoft .NET

Framework 3.0 SDK 文档的跟踪的同时检查服务器跟踪日志。

解决问题:在远程DB上创建访问用户并分配权限即可。

时间: 2024-10-16 12:16:32

EF实体框架创建方法的相关文章

BIM工程信息管理系统-EF实体框架数据操作基类

EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// <summary> /// MSSQL数据库 数据层的父类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T :

EF实体框架之CodeFirst一

对于SQL Server.MySql.Oracle等这些传统的数据库,基本都是关系型数据库,都是体现实体与实体之间的联系,在以前开发时,可能先根据需求设计数据库,然后在写Model和业务逻辑,对于Model类基本都是和表的字段对应着,而表中存的每条记录又和类的实例对象对应着,有了这个对照关系,就是能不能只在一边设计,在数据库设计表或在VS中设计Model,然后直接生成另一边,这样就省了好多时间成本.于是有了ORM,Object Relation Mapping,对象关系映射.既然可以根据Mode

C#.Net EF实体框架入门视频教程

当前位置: 主页 > 编程开发 > C_VC视频教程 > C#.Net EF实体框架入门视频教程 > kingstone金士顿手机内存卡16G仅65元 1.EF实体框架之增加查询 上传日期:2014-09-14 18:48:21  相关摘要:  - 破解无线路由器密码需要增加那些设备? - 桌面上的东西删除的话就会出现文件正在删除的图标,但是这个图标永远不消失 - sql语句查询一张表的3-6条数据,6-9条数据,这样的sql这么写呢 2.EF修改删除和延时加载 上传日期:2014

EF实体框架数据操作基类(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

EF实体框架数据操作基类

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

EF实体框架数据操作接口(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

EF实体框架数据操作接口

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

011.EF实体框架(入门)

1>ASP.NET MVC开发中模型的实现方法 模型的实现方法 两种方法1手动2自动(工具 EF)1.1手动创建模型(写好模型元数据)[练习过了 项目!] 前提条件:先手动创建数据库和表 (模型:实体类,实体访问类,Sqlhelper) (Sqlhelper使用ADO.NET传统方法实现) 1.2使用EF(Entity Framework:实体框架)创建模型 2>EF的概念2.1什么是EF***EF是 实体框架 (Entity Framework)的简称,***EF 可以用来定义模型类并操作数

EF实体框架初了解

什么是实体(Entity),相信大家都认识过了,就是我们重构机房收费系统的时候,那个在三层之间负责传数据的层嘛.在一个作用域内数据类型是如何定义的. 一.实体框架(EntityFramework)是什么呢? Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.EF是开发可以采用特定于域的对象和属性的形式使用数据,不用开路存储数据的技术数据库表和列.形成了更高一个层面上的抽象,并且能够以相对传统应用程序更少的代码. 二.可能你又会