make Entity Framework revert empty strings to null!

public override int SaveChanges(SaveOptions options)
        {
            foreach (EntityObject entity in this.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified).Select(entry => entry.Entity))
            {
                //if (entity == null || entity is User) continue;
                string str = typeof(string).Name;
                var props = entity.GetType().GetProperties();
                var properties = from p in entity.GetType().GetProperties()
                                 where
                                 p.PropertyType.Name == str &&
                                 p.IsDefined(typeof(EdmScalarPropertyAttribute), false) &&
                                 p.IsDefined(typeof(DataMemberAttribute), false)
                                 select p;
                foreach (var item in properties)
                {
                    string value = (string)item.GetValue(entity, null);
                    if (value != null && value.Trim().Length == 0)
                        entity.GetType().GetField("_" + item.Name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(entity, null);
                }
            }
            return base.SaveChanges(options);
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知识分享

C#虚方法

如果说在一个类中已经使用了一个方法而且已经实现,而我想在它的子类中也想使用这个方法,而且也想实现 就像下面这种样子--但是现在还不能用 using System...

34350
来自专栏Netkiller

使用 HttpClient 调用 Restful 接口

本文节选自《Netkiller Java 手札》 import java.io.IOException; import org.apache.http.Htt...

42260
来自专栏码农阿宇

C# 获取一个独一无二的字符串 GUID

在保存文件,创建目录时,为了保证名称不重复,经常使用Random产生一个随机数,有更简单且不会重复的办法是: Guid.NewGuid().ToString()...

281100
来自专栏*坤的Blog

hdu1000

16230
来自专栏C#

C#的DataTable操作方法

1.将泛型集合类转换成DataTable(表中无数据时使用): public static DataTable NullListToDataTable(IL...

29470
来自专栏技术之路

Linq 和DefaultView两种方法去掉DataTable 里的重复行

在做项目的时候经常会遇到DataTable 里的数据重复,或者合并两个DataTable后有数据重复 一般我们是想把重复的删除掉,还有其它的方式实现比如用Lin...

20460
来自专栏跟着阿笨一起玩NET

C#中汉字排序简单示例(拼音/笔划)

31610
来自专栏知识分享

C#构造方法--实例化类时初始化的方法

using System; using System.Collections.Generic; using System.Linq; using System....

29740
来自专栏Jackson0714

01.策略模式-上篇

35580
来自专栏菩提树下的杨过

DataTable,List去重复记录的方法

今天一位朋友问如何去掉DataTable里重复的记录(DataTable是别人返回过来的,不能再重新查询数据库,所以无法用sql中的select distinc...

295100

扫码关注云+社区

领取腾讯云代金券