关于EF实体类的一点思考】的更多相关文章

在EF中修改一条记录时,一般是先查出该条记录,然后再通过TryUpdateModel或其他方式更新对应的属性.但我很讨厌这种要更新一条记录时,还要先去把记录查询出来的做法.我喜欢像sql语句那样的直接更新需要更新的字段. 以前一般都是先写好数据库,再通过代码生成器生成实体类.DbContext对象等.这里没用EF的DBFirst的自动生成是因为它无法生成我想要的实体对象.举个例子,我希望的实体类大概是这样: public class User { public HashSet<string>…
实体类配置总结 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,来演示如何正确配置实体类关系的过程.  实体类配置 一.确定依赖关…
第一步:将PowerDesigner表字段的中文Name填入Comment中:工具-Execute Commands-Edit/Run Script... '****************************************************************************** '* File: name2comment.vbs '* Title: Name to Comment Conversion '* Model: Physical Data Model…
项目中如果 EF + WCF 结合使用,模式应该是EF负责读取数据库,传递数据对象给WCF,WCF再将这些对象传送给客户端.因为WCF传送的对象需要序列化,而EF默认生成的对象并没有序列化,很可能会出现EF传过来的类对象,WCF里面要再定义一次,加上序列化特性.属性明明一样,但还是需要转换:遍历.赋值,太浪费了. 一种解决的方案是,让EF生成的序列化的实体类. 这样就需要修改EF的模板. 1.在VS2012中,首先我们要下载一个模板 EF 5.x DbContext Generator with…
大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在My Blog中并没有对它们之间进行过任何的配置,My Blog可以使用已有的数据库运行,在后续为Post类型添加新属性时,新属性也能够正确的添加到数据库表中,以下是MySQL的数据库表结构: 其中IsPublish和ClickCount是后续通过EF Mirgations添加的.下图的表是直接通过E…
大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在My Blog中并没有对它们之间进行过任何的配置,My Blog可以使用已有的数据库运行,在后续为Post类型添加新属性时,新属性也能够正确的添加到数据库表中,以下是MySQL的数据库表结构: 其中IsPublish和ClickCount是后续通过EF Mirgations添加的.下图的表是直接通过E…
之前一直做ASP,都是直接写数据库操作语句,但是现在使用linq或者EF了,具体数据库操作不会了,遇到几个问题,然后经过查找资料解决了,记录一下. 一.遇到序列化问题 遇到循环引用问题,我的项目是一个学生表,有关联classID和成绩表,造成循环引用,查询了一下可以用如下博客的做法,将循环忽略,这样就会不报错输出,但是输出的内容不是你想要的了,想得到原来的内容,就要对输出的内容做处理才行.我的做法是将查询到的数据重新赋值给一个自定义的类,然后将自定义的类再序列化,后来发现这个操作其实跟自定义序列…
命名空间 ;using System.ComponentModel.DataAnnotations.Schema; 实体部分 public partial class Student { [NotMapped] public int age { get; set; } =18; }…
添加一个标签即可 [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; } }…