1

我不敢相信我沒有找到關於它的好文章。所以它可能是一個1000倍的問題。我正在寫一個樣本,其中包括南希MVC,加上服務層,核心層,DAL。 DAL使用MongoDB的地方。我想要實現的是將MongoDB從Core中分離出來。在任何例子裏,我讀到的MongoDB我看到類似如下:DDD與MongoDB

public class Customer 
{  
    public ObjectId Id{get;set;} 
    public string Name { get; set; } 
    public string Address { get; set; } 
    IEnumerable<string> Telephones { get; set; } 
    [BsonElement("PublicWebPage")] 
    public WebPage PublicPage { get; set; } 
} 

,從我的理解不是那麼好,因爲我需要安裝驅動程序的MongoDB到我的核心。 另一方面,我可以嘗試將這些模型放到DAL中,並在Core中寫入幾乎相同的模型,並且藉助一些映射器映射到另一個映射器,這意味着它將是兩個重複的對象。

我試圖找到的方法可能會複製EF Fluent API方法或其他任何可以幫助我保持模型清潔的方法。

+0

@Valentyn ...我剛剛發現你自己的問題得到了同樣的問題。你找到合適的解決方案嗎? – Stu1986C

+0

@ Stu1986C ...您可能想要製作DAL模型並使用類似AutoMapper的東西來保存您的圖片,但不幸的是,對於這個問題,這是我找到的方便的解決方案,而不會陷入過度工程和「理論」編程。 –

回答

2

所有可以使用MongoDB中的屬性進行映射的東西都可以通過編程方式完成。避免ObjectId將是唯一的其他必要的變化。看到這裏的文檔:http://mongodb.github.io/mongo-csharp-driver/2.0/reference/bson/mapping/

在另一個說明,有兩個模型,看起來幾乎相同,爲非常不同的目的是沒有錯的。根據您的應用程序,這可能是防止各層責任干擾他人的最佳方式。