小编Dav*_*ola的帖子

JSON 序列化值转换不使用 EF Core 跟踪更改

我正在使用 EF Core 值转换。

https://docs.microsoft.com/en-us/ef/core/modeling/value-conversions

我写了一个 JSON 序列化器转换器,如下所示:

private static ValueConverter<T, String> JsonValueConverter<T>()
{
    ValueConverter<T, String> jsonConverter = new ValueConverter<T, String>(
        v => JsonConvert.SerializeObject(v),
        v => JsonConvert.DeserializeObject<T>(v));
    return jsonConverter;
}
Run Code Online (Sandbox Code Playgroud)

在应用程序中实现:

protected override void OnModelCreating(ModelBuilder mb)
{    
   ...
   mb.Entity<MyObject>()
     .Property(p => p.MySerializableObject)
     .HasConversion(JsonValueConverter<MySerializableObject>());
   ...
}
Run Code Online (Sandbox Code Playgroud)

有用。

但是,当您对序列化对象内的属性进行更改时,EF Core 更改跟踪不会获取对MySerializableObject.

我假设有某种方法可以在对象级别强制执行此操作。我试图实施IEqualityComparerMySerializableObject但更改跟踪没有开始工作。

json entity-framework-core ef-core-2.1

13
推荐指数
1
解决办法
2755
查看次数

Swashbuckle 如何将 OneOf 声明添加到 OpenAPI 3

我有一个请求对象,它可以是 2 个字符串类型“A”或“B”。

注意:这是我真正想要的一个更简单的例子。枚举在这里对我不起作用。

public class SampleRequest
    {
        //Can only be "A" or "B"
        public string Property1 { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个可以作为 OpenAPI“OneOf”属性输出的模式过滤器。

https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.5

https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/#oneof

https://github.com/domaindrivendev/Swashbuckle.AspNetCore#schema-filters

public class CustomSchemaFilter : ISchemaFilter
    {
        public void Apply(OpenApiSchema schema, SchemaFilterContext context)
        {

            schema.OneOf = new List<OpenApiSchema>
            {

                new OpenApiSchema {Type = "string", Description = "A"},
                new OpenApiSchema {Type = "string", Description = "B"}
            };

        }
    }
Run Code Online (Sandbox Code Playgroud)

运行 swagger 时,swagger-ui 正确呈现“oneOf”描述:

oneOf: List [ OrderedMap { "type": "string", "description": "A" }, OrderedMap { …
Run Code Online (Sandbox Code Playgroud)

swagger swagger-ui .net-core swashbuckle openapi

5
推荐指数
1
解决办法
1140
查看次数