命名空间 ;using System.ComponentModel.DataAnnotations.Schema; 实体部分 public partial class Student { [NotMapped] public int age { get; set; } =18; }…
添加NotMapped 特性 /// <summary> /// 用户名 /// </summary> [NotMapped] public string user_name { get; set; }…
添加一个标签即可 [NotMapped] 没什么营养,就是防忘记…
public class FoundationInfo { [Column("id")] public int ID { get; set; } public InvestType Ctype { get { return (InvestType)Ctype2; } set { Ctype2 = (int)value;} } private int _ctype; [Column("Ctype")] public int Ctype2 { get; set; } }…
由于Scaffold-DbContext指令目前还不支持自动映射数据库中的视图为实体,所以当我们想使用EF Core来读取数据库视图数据的时候,我们需要手动去做映射,本文介绍如何在EF Core中手动映射数据库的视图为实体. 假设我们在SQL Server中有如下数据库视图[dbo].[V_Person]: CREATE VIEW [dbo].[V_Person] AS SELECT ID, Code, Name, CreateTime, UpdateTime FROM dbo.Person G…
实体类配置总结 Entity Framework 6 Code First 实践系列(1):实体类配置总结 2014-03-25 12:58 by TJerry, 719 阅读, 6 评论, 收藏, 编辑 EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关键在于搞清实体类的依赖关系,按此方法配置,快速高效合理.为了方便理解,我们使用简化的实体A和B以及A.B的配置类AMap和BMap,来演示如何正确配置实体类关系的过程.  实体类配置 一.确定依赖关…
通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也是将枚举类型转换成int 类型,数据库存储的是int 类型的数据,在访问数据的时候进行枚举类型和int类型的转换,例如下面的例子: public enum RoleNames { User, Manager, Admin } 假设有一个实体类Users,如果实体类不支持枚举类型,得这样使用(下面的示…
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是方法的返回值的全类名--> <select id="getEmployeeById" resultType="MyBatis中当实体类中的属性名和表中的字段名不一样怎么办.entities.Employee"> select id,last_name…
方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for (Field field : model.getClass().getDeclaredFields()) { field.setAccessible(true); System.out.println(field.getName() + ":" + field.get(model) );…
今天在公司的项目开发中,遇到一个问题: 后端对象实体类中写入字段顺序与数据库中的存储顺序不一致. 仔细观察到数据库中的表字段的排序方式是按照拼音字母的顺序abcdef......来存储的 而我的实体类中的表结构顺序却不是这样的 经过查阅资料,总结到了解决这个问题的方法: 一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) 二.实体类字段顺序与数据库不一致解决办法 在org.hibernate.cfg包下的PropertyCont…
第一步:将PowerDesigner表字段的中文Name填入Comment中:工具-Execute Commands-Edit/Run Script... '****************************************************************************** '* File: name2comment.vbs '* Title: Name to Comment Conversion '* Model: Physical Data Model…
例如:数据库中一个字段名称为CompanyId 自定义实体数据名称 [Column("CompanyId")] public int Id{ get; set; } 这样就可以使用Id而不是CompanyId映射数据库了 [NotMapped] public int CompanyId { get; set; } 这样就取消了该字段的映射…
1:数据准备 创建一个数据库表 CREATE TABLE `logininfo` ( `id` ) NOT NULL AUTO_INCREMENT, `username` ) DEFAULT NULL, `password` ) DEFAULT NULL, `state` ) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 2:配置generatorConfig.xml <?xml version="…
在EF中修改一条记录时,一般是先查出该条记录,然后再通过TryUpdateModel或其他方式更新对应的属性.但我很讨厌这种要更新一条记录时,还要先去把记录查询出来的做法.我喜欢像sql语句那样的直接更新需要更新的字段. 以前一般都是先写好数据库,再通过代码生成器生成实体类.DbContext对象等.这里没用EF的DBFirst的自动生成是因为它无法生成我想要的实体对象.举个例子,我希望的实体类大概是这样: public class User { public HashSet<string>…
贴上一段代码: bureaucraticEntities apply = new bureaucraticEntities(); Type tapp= app.GetType(); Type ttmp = tmp.GetType(); List<PropertyInfo> tList= tapp.GetProperties().ToList(); List<PropertyInfo> tmpList = ttmp.GetProperties().ToList(); for (int…
项目中如果 EF + WCF 结合使用,模式应该是EF负责读取数据库,传递数据对象给WCF,WCF再将这些对象传送给客户端.因为WCF传送的对象需要序列化,而EF默认生成的对象并没有序列化,很可能会出现EF传过来的类对象,WCF里面要再定义一次,加上序列化特性.属性明明一样,但还是需要转换:遍历.赋值,太浪费了. 一种解决的方案是,让EF生成的序列化的实体类. 这样就需要修改EF的模板. 1.在VS2012中,首先我们要下载一个模板 EF 5.x DbContext Generator with…
在使用SSH框架开发过程,使用hibernate框架提供的工具类实现与数据库数据交互,在执行cmd操作时,如果出现以下异常: org.hibernate.hql.ast.QuerySyntaxException: xxx is not mapped [from xxx] 或者 nested exception is org.hibernate.hql.internal.ast.QuerySyntaxException 详细异常信息   ::, ERROR DefaultDispatcherErr…
大家都知道Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封装该私有属性,提供一对共有的get,set方法来访问私有属性.一般情况下都会这样做!但遇到特殊情况呢?比如,先现有一个需求:访问一个Java类的私有属性,并且该类不提供访问该私有属性的共有方法!下面就为大家介绍一种方法访问java类的私有属性. 要获取java类的私有属性就不得不先介绍一个类PropertyD…
1.我们通过DB与数据库建立连接 2.建立web工程,构建Hibernate框架 3.通过table生成实体类…
1.1.1.1.      步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启  其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用户名就无法封装了,此时我们可以尝试使用ResultMap来解决这个问题. 1.1.1.2.      步骤二:在UserMapper.xml中配置resultMap <!-- resultMap标签:可以自己配置对象属性和表字段的映射(不仅仅是驼峰规则的映射) type属性:结果集的封装类型 id属…
大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在My Blog中并没有对它们之间进行过任何的配置,My Blog可以使用已有的数据库运行,在后续为Post类型添加新属性时,新属性也能够正确的添加到数据库表中,以下是MySQL的数据库表结构: 其中IsPublish和ClickCount是后续通过EF Mirgations添加的.下图的表是直接通过E…
大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在My Blog中并没有对它们之间进行过任何的配置,My Blog可以使用已有的数据库运行,在后续为Post类型添加新属性时,新属性也能够正确的添加到数据库表中,以下是MySQL的数据库表结构: 其中IsPublish和ClickCount是后续通过EF Mirgations添加的.下图的表是直接通过E…
写了一段时间增删改查有点厌烦,自己找了下网上的例子鼓捣了下自动生成. 首先得有一个配置文件: generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"   …
之前一直做ASP,都是直接写数据库操作语句,但是现在使用linq或者EF了,具体数据库操作不会了,遇到几个问题,然后经过查找资料解决了,记录一下. 一.遇到序列化问题 遇到循环引用问题,我的项目是一个学生表,有关联classID和成绩表,造成循环引用,查询了一下可以用如下博客的做法,将循环忽略,这样就会不报错输出,但是输出的内容不是你想要的了,想得到原来的内容,就要对输出的内容做处理才行.我的做法是将查询到的数据重新赋值给一个自定义的类,然后将自定义的类再序列化,后来发现这个操作其实跟自定义序列…
我们都知道mybatis generator自动生成的注释没什么实际作用,而且还增加了代码量.如果能将注释从数据库中捞取到,不仅能很大程度上增加代码的可读性,而且减少了后期手动加注释的工作量. 1.首先定义注释生成插件 MyCommentGenerator.java package com.ilovey.mybatis.comment; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generato…
引言:DDD的困惑 最近,我看到园子里面有位朋友的一篇博客 <领域驱动设计系列(一):为何要领域驱动设计? >文章中有下面一段话,对DDD使用产生的疑问: •没有正确的使用ORM, 导致数据加载过多,导致系统性能很差. •为了解决性能问题,就不加载一些导航属性,但是却把DB Entity返回上层,这样对象的一些属性为空,上层使用这个数据时根本不知道什么时间这个属性是有值的,这个是很丑陋的是不是? 博主说的第一个问题,是因为使用ORM的人把实体类的全部属性的数据查询出来了,相当于执行了 sele…
1.resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射 <!-- resultMap:设置自定义映射 属性: id:表示自定义映射的唯一标识 type:查询的数据要映射的实体类的类型 子标签: id:设置主键的映射关系 result:设置普通字段的映射关系 association:设置多对一的映射关系 collection:设置一对多的映射关系 属性: property:设置映射关系中实体类中的属性名 column:设置映射关…
本文转载自:http://www.cnblogs.com/jpf-java/p/6013307.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); IN…
实体类通常需要和数据库表进行了ORM映射,当你需要添加新的属性时,往往同时也需要在数据库中添加相应的字段并配置好映射关系,同时可能还需对数据访问组件进行重新编译和部署才能有效.而当你开始设计一个通用数据访问组件后,因为项目需求的不同和需求的不断变化演变,很难不能保证不会再添加额外的属性和字段.特别是项目部署运行后,添加一个属性和字段带来的额外维护的工作量可能要远远超过对代码进行调整的工作量.本文提供了属性字段扩展的一种思路,在满足核心字段可通过实体类强类型进行访问的同时,还可通过C# 4.0提供…
在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no ), order_price FLOAT ); ); ); ); 二.定义实体类 package me.gacl.domain; 2 /** * @author gacl * 定…