2013-10-21 5 views
10

ドメイン中心のデータの記憶域としてmongodbを使用することを選択しました。 official mongodb providersを検索してASP.NET MVCプロジェクトに統合することができ、単一のアプリケーションデータベースを保有します。公式の提供者はなく、利用できるものは成熟した/安定して見えません。だから私は単純なメンバーシップをそのまま使用することに決めました。SimpleMembership/Sql Server CE、MongoDBでユーザープロファイルを管理する

可能であればEntity Framework固有のコードを取り除くには、AccountControllerから?

SimpleMembership UserProfileMongoDBUserの両方を持つユーザープロファイルをどのように管理しますか?

別のアセンブリ[project-name].domainでは、2つのクラスがあります。

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; } 
} 

は、私がUserUserProfileIdを追加する場合、これは解決策になるのでしょうか?

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

答えて

5

あなたはASP.NET MVC 5でスタンダールAccountControllerにデフォルトAspNet.Identity.EntityFrameworkの使用を交換するためにMongoDBのためのAspNet.Identityの実装を必要としますか?はいの場合 - maybe this helps you - MongoDB.AspNet.Identityを完全に実装しました。

+0

あなたは知っていますか?いずれかの方法で試してみるが、これがMVC5固有であるかどうかを知りたがっている場合は、自分自身を苦痛から守るために... –

+1

Microsoft OwinはNuGetを介して配布するので、MVC4プロジェクトに追加してOwinのID古い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"]を読み込み、明らかに上記のappsettingキー名と一致しなければなりません。

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

[2]:これはMVC4で動作するかどうhttps://github.com/osuritz/MongoDB.Web/commit/b1e9534023ca8cb2e74eb1adbdcb1cd7dd693efa

関連する問題