相关疑难解决方法(0)

Dapper - 通过构造函数处理具有只读字段的ddd实体的自定义映射

我有以下课程,我试图补充:

public class Product
{
    public readonly Sku Sku;
    public string Name { get; private set; }
    public string Description { get; private set; }
    public bool IsArchived { get; private set; }

    public Product(Sku sku, string name, string description, bool isArchived)
    {
        Sku = sku;
        Name = name;
        Description = description;
        IsArchived = isArchived;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中使用以下类来实现我的DDD实体域模型中的概念(删除非相关代码以保持代码简短,设置为只读以在构造后使不可变):

public class Sku
{
    public readonly VendorId VendorId;
    public readonly string SkuValue;

    public Sku(VendorId vendorId, string skuValue)
    {
        VendorId = vendorId;
        SkuValue …
Run Code Online (Sandbox Code Playgroud)

c# orm dapper

6
推荐指数
1
解决办法
1482
查看次数

在MongoDb上序列化只读属性

使用C#6,我可以编写:

public class Person
{
    public Guid Id { get; }
    public string Name { get; }
    public Person(Guid id, string name)
    {
        Id = id;
        Name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,MongoDb驱动程序无法正确地序列化这样的类,属性也无法序列化。

MongoDb仅在默认情况下使用getter和setter序列化属性。我知道您可以手动更改类映射,并告诉序列化程序包括仅获取属性,但是我一直在寻找避免自定义每个映射的通用方法。

我正在考虑创建一个类似于ReadWriteMemberFinderConvention的自定义约定,但不进行CanWrite检查。

还有其他解决方案吗?构造函数将被自动调用,还是需要其他自定义?

serialization mongodb bson c#-6.0 mongodb-.net-driver

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

标签 统计

bson ×1

c# ×1

c#-6.0 ×1

dapper ×1

mongodb ×1

mongodb-.net-driver ×1

orm ×1

serialization ×1