我非常喜欢保留原始域模型的概念,您不需要引用任何第三方DLL。我希望能够设计一个域模型,您可以使用实体框架或mongodb中的流畅API来定义域程序集之外的映射。我还希望能够在实体ID时使用Guid for Entity Framework和ObjectIds for MongoDB。
问题在于,这四种数据类型中没有一种是理想的:
public Guid Id { get; set; } // can't use ObjectIds for mongo
public ObjectId Id { get; set; } // not compatible with entity framework
public object { get; set; } // not compatible with entity framework
public string { get; set; } // EF has problems wiring this up to a Guid column
有没有人知道如何定义一些可以在MongoDB中使用EF和ObjectIds中的Guid的原始POCO?我希望能够在两种持久性技术之间进行切换,而无需对我的域模型进行更改。
如果我可以在我的POCO中使用通用的东西,并在每个FluentAPI中定义数据类型,这将是完美的,但也证明具有挑战性。