0

У меня есть приложение ASP.NET MVC3, которое я создал, и у него две базы данных.Перенесите мою базу данных First Entity Framework в базу данных поставщика членства по умолчанию

Один из них относится к Поставщику членства по умолчанию и автоматически создается при создании приложения.

Другая база данных, которую я назвал SchoolContext, и я хотел бы, чтобы вся информация в пределах SchoolContext хранилась в той же базе данных, что и все данные в Поставщике членства по умолчанию.

Вот мои две соединительные строки:

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0" /> 

Я попытался переименовать ApplicationServices в SchoolContext, а затем комментируя мою вторую строку подключения, и я могу загрузить и «войти» с помощью поставщика членства по умолчанию просто отлично, но всякий раз, когда мне нужно ставить в очередь базу данных для информации, которая была сохранена в исходном SchoolContext, я получаю ошибки, заявляя, что модель небезопасна и т. д. , и данные не создаются в базе данных, которая содержит информацию от поставщика членства по умолчанию.

Я использую инициализатор, чтобы восстановить базу данных, если изменения модели:

public class SchoolInitializer : DropCreateDatabaseIfModelChanges<SchoolContext> 

И это отлично работает в любое время я изменить что-то в модели, и я использую схему две базы данных. Однако он не работает, когда я хочу объединить две базы данных в одну.

Я, по-видимому, не знаю, как подключить две базы данных, поскольку то, что я пытаюсь сделать, не работает, как мне надлежащим образом настроить mvc, чтобы поместить мой SchoolContext в ту же базу данных, что и информация, необходимая для поставщика членства по умолчанию ?

ответ

2

Два возможных ответов:

  1. Если я понимаю ваши намерения вы пытаетесь использовать два отдельных DB контексты и выполнять запросы, которые соединяются через них обоих. Это невозможно в Entity Framework (на момент написания этой статьи), хотя в будущем может быть рассмотрено . Увидеть этот пост для более специфических: https://stackoverflow.com/a/8536400/941058

    Если вам нужно зарегистрироваться на информацию, вам нужно будет сделать это в памяти с помощью LINQ. По существу вам нужно хранить внешний ключ информацию в любой базе данных и ссылаться на нее при запросе одного или другого.

  2. Если вы не пытаетесь поперечным контексту присоединиться, но вместо этого просто хочет использовать по умолчанию поставщика членства с EF считает это: http://efmembership.codeplex.com/

+0

ссылку вы дали на 2 (у меня не было еще раз прочитать все, но выглядит надежно). Правильно ли я понимаю, что он установит информацию о поставщике членства по умолчанию в базу данных, в которой также могут быть мои собственные пользовательские данные структуры сущности (например, мой «SchoolContext»)? – Ecnalyr

+0

Да, это суть варианта №2. Удачи! :-) – kingdango

+0

@misc Если это помогло ответить на ваш вопрос, отметьте его как ответ. – kingdango

 Смежные вопросы

  • Нет связанных вопросов^_^