zoukankan      html  css  js  c++  java
  • Entity Framework POCO T4模板使用

    在之前的文章中写过Entity Framework中POCO的支持。其实在VS2010的Extension里面提供了POCO的模板给我们了,我们可以很快地来实现Entity 跟Contenx的生成了。本文中将介绍POCO模板的使用。

    安装

    image

    我们选择C#POCO Entity Generator,下载之后,在弹出的对话框中选择安装即可。

    生成代码

    在这里我们使用Northwind数据库,首先先建立了一个控制台项目,然后添加NorthdWind的edmx,别忘记了吧Custom Tool设置为空,因为我们要使用POCO的功能:

    image

    在新建项中我们选择POCO Etntiy Generator:

    image

    在确定之后我们会看到如下错误:

    image

    这是因为模板中找不到inputfile的原因,在模板里面我们找到InputFile:

    image

    修改为:Northwind.edmx之后我们可以看到模板就会帮我们把对应的实体跟Contenxt全部生成好了:

    image

    同时我们可以设置生成代码的命名空间:

    image

    生成的实体中会包含:原始属性、导航属性以及关系的Fixup。

    分解到另外项目中与查询

    新建一个Northiwind.Entities,我们可以直接把Northwind.tt移到Entities项目中去,被忘了同时需要修改InputFileName为:@"..\\Northwind.ConsoleApp\\Northwind.edmx"

    我们看到解决方案结构:

    image

    我们虚幻要将Northowind.Context.tt的Input的FileName设置好,以及添加对Northiwind.Entities的引用。下面我们来编写查询试试看:

                using (var context = new NorthwindEntities())
                {
                    var products = from product in context.Products
                                   where product.CategoryID == 1
                                   select product;
                    foreach (var product in products)
                    {
                        Console.WriteLine("The Product Info : ProductName:{0} CategoryID:{1}",
                            product.ProductName,
                            product.CategoryID);
                    }
                    Console.Read();
                }

    结果:

    image

    总结

    在本文中介绍使用了T4模板为我们生成POCO的实体的示例,我们可以看到是如此的方便简单。这样的事我们好像在以前在使用NHibernate时,使用Codesmith生成代码一样。

    作者:Henllyee Cui
    出处: http://henllyee.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。

  • 相关阅读:
    考研讲座笔记——张雪峰
    【极简版】OpenGL 超级宝典(第五版)环境配置 VS2010
    OpenGL编程指南(第九版) Tiangles 学习笔记
    qt学习笔记
    郑州大学2018新生训练赛第十场题解
    Win10 中将网页转换成pdf的简便方法
    Kali Linux ——在无网络情况下安装无线网卡驱动
    成环的概率dp(初级) zoj 3329
    概率dp的边界处理 POJ 2096
    node连接mysql生成接口,vue通过接口实现数据的增删改查(一)
  • 原文地址:https://www.cnblogs.com/Henllyee/p/EntityFramewrok_POCO_T4Template.html
Copyright © 2011-2022 走看看