[EF1]POCOs(Plain Old C# Object)Entity Framework 4.x: POCOs入门
原文链接:http://www.cnblogs.com/hjzhang/archive/2011/05/18/2050530.html
POCOs 是在Visual Studio 2010和ASP.NET 4.0中开始支持的一个新特性,其入门十分简单,下面我们基于Entity Framework 4.0.来实现一个基于POCOs的代码示例。
首先,创建一个测试工程
然后,新建一个Ado.NET Entity Data Model文件
如下图所示,定义两个类:Albums 和Photos
接下来我们还要确认是否已经关闭了代码自动生成,在Solution Explorer 选择edmx定义文件,在属性框确认Custom Tool为空,如下图所示:
定义以上两个对象的结构
- public class Albums
- {
- public Int32 Id { get; set; }
- public String AlbumName { get; set; }
- public String Remark { get; set; }
- public IList<Photos> Photos { get; set; }
- }
- public class Photos
- {
- public Int32 Id { get; set; }
- public String Name { get; set; }
- public String Description { get; set; }
- public String PicPath { get; set; }
- public Int32 Album_Id { get; set; }
- public Albums Albums { get; set; }
- }
然后建立自己的继承于ObjectContext的对象,在该对象中我们将定义需要使用LINQ查询的对象集合。如下所示:
- public class Mvc3SampleModel : ObjectContext
- {
- private readonly ObjectSet<Albums> _albums;
- private readonly ObjectSet<Photos> _photos;
- public Mvc3SampleModel()
- : base("Name=DbEntities", "DbEntities")
- {
- ContextOptions.LazyLoadingEnabled = true;
- _albums = CreateObjectSet<Albums>("Albums");
- _photos = CreateObjectSet<Photos>("Photos");
- }
- public ObjectSet<Albums> Albums
- {
- get { return _albums; }
- }
- public ObjectSet<Photos> Photos
- {
- get { return _photos; }
- }
下面演示基于LINQ进行查询的一般情况:
- public void GalleryTest()
- {
- var context = new Mvc3SampleModel();
- var visibleAlbums = from a in context.Albums
- where a.AlbumName !=null
- select a;
- foreach (var visibleAlbum in visibleAlbums)
- {
- Console.WriteLine(visibleAlbum.AlbumName);
- }
- var searchPhotos = from p in context.Photos
- where p.Name.StartsWith("M")
- select p;
- foreach (var searchPhoto in searchPhotos)
- {
- Console.WriteLine(searchPhoto.Name);
- }
- }
以下为测试结果
[EF1]POCOs(Plain Old C# Object)Entity Framework 4.x: POCOs入门的更多相关文章
- Java基础 之软引用、弱引用、虚引用 ·[转载]
Java基础 之软引用.弱引用.虚引用 ·[转载] 2011-11-24 14:43:41 Java基础 之软引用.弱引用.虚引用 浏览(509)|评论(1) 交流分类:Java|笔记分类: Ja ...
- [整理]EABI和OABI【转】
本文转载自:https://www.crifan.com/order_eabi_and_oabi/ 1.什么是ABIABI,application binary interface (ABI),应用程 ...
- [caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=.= 主要过程稍微记录一下: 1.安装BLAS s ...
- [Swift]基础
[Swift]基础 一, 常用变量 var str = "Hello, playground" //变量 let str1="Hello xmj112288" ...
- [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
1. 什么是internationalization(i18n)? 国际化,英文简称i18n,按照维基百科的定义:国际化是指在设计软件,将软件与特定语言及地区脱钩的过程.当软件被移植到不同的语言及地区 ...
- [译]一个灵活的 Trello 敏捷工作流
[译]一个灵活的 Trello 敏捷工作流 翻译自 An Agile Trello Workflow That Keeps Tasks Flexible Getting things done 可不只 ...
- iOS10收集IDFA,植入第三方广告[终结]--ADMob
[PS: 前段时间,公司做ASO推广,需要在应用中收集IDFA值,跟广告平台做交互!于是有了这个需求--] 1.首先,考虑了一下情况(自己懒 -_-#),就直接在首页上写了一个Banner,循环加载广 ...
- Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP
Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上次我分享过Spring传统的A ...
- CSU 1642 Problem B[难][前缀和]
Description 已知两个正整数a和b,求在a与b之间(包含a和b)的所有整数的十进制表示中1出现的次数. Input 多组数据(不超过100000组),每组数据2个整数a,b.(1≤a,b≤1 ...
随机推荐
- iOS: 为画板App增加 Undo/Redo(撤销/重做)操作
这个随笔的内容以上一个随笔为基础,(在iOS中实现一个简单的画板),上一个随笔实现了一个简单的画板: 今天我们要为这个画板增加Undo/Redo操作,当画错了一笔,可以撤销它,或者撤销之后后悔了, ...
- pycharm连接mysql数据库
新的环境配置pycharm的项目时,发现pycharm不能连接到mysql数据库.由于安了java环境但是还没配置相关的库,并且jetbrains家的IDE一般都是java写的,于是猜想可能是java ...
- 【Asp.Net Core】一、Visual Studio 2015 和 .NET Core 安装
安装 Visual Studio 和 .NET Core 1.安装 Visual Studio Community 2015,选择 Community 下载并执行默认安装.Visual Studio ...
- 珍珠(bead)
题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...
- 在MongoDB的MapReduce上踩过的坑
太久没动这里,目前人生处于一个新的开始.这次博客的内容很久前就想更新上来,但是一直没找到合适的时间点(哈哈,其实就是懒),主要内容集中在使用Mongodb时的一些隐蔽的MapReduce问题: 1.R ...
- SQL中varchar和nvarchar的区别
varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvar ...
- OC多态
要点: 1.多种形态,引用的多种形态对于一个引用变量,可以指向任何类的对象.对于一个父类的引用(类与类之间有一种继承关系),可以指向子类,也可以指向本类,指向的类型不同.当通过此引用向对象发送消息,调 ...
- Titanium.UI.createAlertDialog
学习TI 记录一下 1.确认对话框 Js代码 var a = Titanium.UI.createAlertDialog({ title:'添加人员信息', message:"人员添加成功& ...
- FrozenUI - 专注于移动web的UI框架
http://frozenui.github.io/ 移动框架 重磅出击 简单易用,轻量快捷,为移动端服务的前端框架 开始使用 立即下载
- SQL Server中删除重复数据
delete from A ) )



