美文网首页.Net Core
EF Core 实体JSON序列化

EF Core 实体JSON序列化

作者: yangganboy | 来源:发表于2018-09-09 19:50 被阅读199次

    最近因为工作的问题接触net core的Entity Framework。解决的它的序列化问题,给其他遇到的人提供一个解决方案参考。

    首先要忽略上下文已经关闭的错误,和脱离的实体懒加载错误。

    忽略错误

    忽略了错误还要忽略掉实体里的lazyload字段。下面给出newtonsoft Json的配置

    JsonSerializerSettings serializerSettings = new JsonSerializerSettings();

    serializerSettings.NullValueHandling = NullValueHandling.Ignore;

    serializerSettings.ContractResolver = new IngoreLazyLoadResolver();

    jsonSerializer = JsonSerializer.Create(serializerSettings);

    用这个配置实现nore core mvc的序列化接口

    IgnoreLazyLoadResolver这个类的实现是这个的

    public class IngoreLazyLoadResolver : CamelCasePropertyNamesContractResolver {

    protected override IListCreateProperties(Type type, MemberSerialization memberSerialization) {

    IList properties = base.CreateProperties(type, memberSerialization);

                return properties.Where(o => !o.PropertyName.Equals("lazyLoader")).ToList();

            }

        }

    然后把序列化实现加到OutputFormatters就行了

    services.AddMvc(options =>{options.OutputFormatters.Insert(0,CustomJsonOutputFormatter());});

    相关文章

      网友评论

        本文标题:EF Core 实体JSON序列化

        本文链接:https://www.haomeiwen.com/subject/tludgftx.html