2013-10-21 89 views
10

我選擇使用mongodb作爲域爲中心的數據存儲。 我正在尋找official mongodb providers將其整合到ASP.NET MVC項目中以保持單個應用程序數據庫。沒有官方供應商,可用供應商看起來不成熟/穩定。所以我決定使用簡單的會員資格。用SimpleMembership/Sql Server CE管理用戶配置文件,MongoDB

如何擺脫Entity Framework特定的代碼,如果可能,從AccountController

您將如何管理兼具SimpleMembership UserProfileMongoDBUser的用戶配置文件?

在一個單獨的組件[project-name].domain有兩類:

public class Event { 
    public DateTime ScheduledDate { get; set; } 
    public String Name { get; set; } 
    public Location Location { get; set; } 
} 

public class User { 
    public String Name { get; set; } 
    public List<Events> AssociatedEvents { get; set; } 
} 

這會是一個解決方案,如果我添加UserProfileIdUser

public class User { 
    public Int32 UserProfileId { get; set; } 
    public String Name { get; set; } 
    public List<Events> AssociatedEvents { get; set; } 
} 

回答

5

你需要AspNet.Identity實施的MongoDB在ASP.NET MVC 5替換非標準的AccountController默認AspNet.Identity.EntityFramework使用?如果是 - maybe this helps you - 完全實現了MongoDB.AspNet.Identity。

+0

你知道這是否會與MVC4工作?試圖以任何一種方式嘗試,但想知道這是否是特定於MVC5的,並且如果是這樣的話可以節省一些痛苦... –

+1

微軟Owin分佈在NuGet上,所以看起來,您可能會將其添加到您的MVC4項目並使用Owin標識而不是舊的Forms/Membership提供者模型。 –

+1

去了MVC5路線。開始一個新項目......不妨從最新/最好的開始。謝謝! –

8

您必須使用appSetting中的connectionString。

您需要下載上面的分支,構建&更改您現有的dll引用以使用新的dll。

則...

使用您的配置:

<appSettings> 
    <add key="MONGOLAB_URL" value="mongodb://localhost/ASPNETDB"/>  
</appSettings> 

...上面的值將appharbor/mongolab被替換(如果你有工作,那麼該應用程序的其它部分這是正確的)

<providers> 
    <clear /> 
    <add name="MongoDBMembershipProvider" type="MongoDB.Web.Providers.MongoDBMembershipProvider" 
    applicationName="/" appSettingsConnectionStringKey="MONGOLAB_URL" collection="Users" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" /> 
</providers> 

所以在上面的配置中,它有appSettingsConnectionStringKey參數。自定義提供程序中的代碼讀取appSettingsConnectionStringKey值'MONGOLAB_URL',然後使用它讀取ConfigurationManager.AppSettings [「MONGOLAB_URL」],顯然,它必須與上面的應用程序密鑰名稱匹配。

[1]:https://github.com/osuritz

[2]:https://github.com/osuritz/MongoDB.Web/commit/b1e9534023ca8cb2e74eb1adbdcb1cd7dd693efa

相關問題