ORM框架万万千,一直都使用NHibernate,没用过其他的。最近闲来学习下微软自家的Entity Framework,记录一些我学习过程中遇到的头疼问题。(不断更新中...)

教程:http://www.cnblogs.com/mbailing/tag/Entity%20Framework/

1.如何映射实体的枚举属性?

这跟Entity Framework 4、5或6版本没关系,请把.NET版本换成4.5就可以支持枚举类型了。之前版本想实现枚举属性参考:

http://www.cnblogs.com/ryanding/archive/2010/04/18/1714854.html

http://www.cnblogs.com/snowdream/archive/2010/04/19/use-enum-in-adonet-entity-framework-4.html

 

2.如何实现属性的唯一键?

目前不支持,只能通过手动实现。参考:

http://stackoverflow.com/questions/5701608/unique-key-with-ef-code-first

 

3.如何实现实体属性的数据验证?

可以使用partial关键字和MetadataTypeAttribute特性来实现。

using System.ComponentModel.DataAnnotations;

// 假设这是由EF自动生成的实体类,我们需要对Name属性进行验证。
// 因为每次修改edmx保存时,该类又被重新生成。那我们写的代码就白费了。
public partial class User
{
public string Name { get; set; }
} // 新建一个User,加上关键字partial和MetadataType特性。
// 利用partial,我们新建的类就会和EF生成的类合并。我们可以在这个类里做任何事都不会白费了。
[MetadataType(typeof(UserMetadata))]
public partial class User
{ } // 建一个元数据,对Name属性进行验证。属性名必须一致。
internal class UserMetadata
{
[RegularExpression("^([\u4E00-\u9FA5]|[\uFE30-\uFFA0]|[a-zA-Z0-9_]){3,12}$")]
public string Name { get; set; }
}

3.如何为DateTime、Guid类型的属性设置默认值?

Entity Framework 5问题集锦的更多相关文章

  1. Entity Framework 问题集锦

    作者:疯吻IT 出处:http://fengwenit.cnblogs.com 1. No Entity Framework provider found for the ADO.NET provid ...

  2. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  3. Entity Framework Core 1.1 升级通告

    原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...

  4. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  5. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  6. 来,给Entity Framework热热身

    先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...

  7. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)

    前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...

  8. Entity Framework教程(第二版)

    源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...

  9. Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新

    因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...

随机推荐

  1. Mac 下 Maven 的命令行安装

    JDK 的安装 系统的“系统偏好设置”中我们可以看到 Java的设置, Java 7(含) 之后的版本在这里可以看到. 点击进去后,可以看到独立的 Java 控制面板 注意,这里是 JRE 的版本, ...

  2. [kuangbin带你飞]专题十四 数论基础

            ID Origin Title   111 / 423 Problem A LightOJ 1370 Bi-shoe and Phi-shoe   21 / 74 Problem B ...

  3. Spring-MongoDB简单操作

    1.简单的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...

  4. Codeforces Round #223 (Div. 2) A

    A. Sereja and Dima time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. HDU 4118 Holiday's Accommodation

    Holiday's Accommodation Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 200000/200000 K (Jav ...

  6. 使用 iMacros 来自动化日常的工作

    利用 iMacros 的浏览器附加组件来提高工作效率 介绍 iMacros 这个强大的工具,使用简单的范例演示了如何使用这个工具来完成对于网页的操作,对于大量的具有重复性的工作内容尤其可以提高效率.对 ...

  7. opencv学习——兴趣区选取

    在OpenCV中,普遍支持ROI和widthStep,函数的操作被限制于感兴趣的区域,要设置或者取消ROI,就要使用cvSetImageROI()和cvResetImage()函数.如过想设置ROI, ...

  8. Django中级篇之Model专题

    ORM 就是用面向对象的方式去操作数据库的创建表以及增删改查等操作 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据 ...

  9. android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)

    服务端php程序file_up.php function uploadFileBinary() { $this->initData(); $absoluteName = "" ...

  10. 在VS2012中采用C++中调用DLL中的函数 (4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...