2015-02-02 4 views
0

Не слишком уверен, что это был правильный способ сформулировать вопрос, но в настоящее время я склоняюсь к MVC.Несколько моделей MVC с одинаковой строкой соединения

У меня есть несколько моделей Entity Data (я не уверен, что это лучшая практика, но это казалось логичным), но только один работает, как его представление ошибки

«Asaurus.Models.ConnectionString» уже определяет элемент под названием 'ConnectionString' с теми же типами параметров ...»

Эти два класса

1:

public partial class ConnectionString : DbContext 
{ 
    public ConnectionString() 
     : base("name=ConnectionString") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<TABLE1> TABLE1 { get; set; } 
} 
} 

2:

public partial class ConnectionString : DbContext 
{ 
    public ConnectionString() 
     : base("name=ConnectionString") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<TABLE2> TABLE2 { get; set; } 
} 
} 

Можно ли избежать этого конфликта?

Заранее спасибо, Джеймс

ответ

3

Не слишком уверен, если это правильный путь к слову вопрос

Ну, учитывая, что вы на самом деле не задать вопрос в названии, я сказал бы, что нет .. это не так. Кроме того, вам действительно нужно понять, что ASP.NET MVC и структура сущности - это две совершенно разные технологии, которые просто используются вместе, поэтому задавая вопрос с тегом mvc, но это действительно касается EF, вы получите меньше ответа, чем если бы вы пометили его правильно. Кроме того, вы должны прочитать теги, которые вы применяете. Они имеют реальные значения, которые описаны явно в их desriptions ... В частности, [Model-View-Controller] тег говорит, что это в этом описании:

Model-View-Controller (MVC) является архитектурным шаблон, используемый в разработке программного обеспечения. Для Microsoft ASP.NET MVC вместо этого используйте тег [asp.net-mvc].

Поэтому, если вы хотите быть хорошим членом сообщества, научитесь читать то, что сообщает вам сайт.

Теперь, на ваш вопрос ... Во-первых, почему ваш EDM называется «ConnectionString»? Вы должны называть их по назначению. Не стоит включать несколько моделей, если вы используете по крайней мере EF 6 (у предыдущих версий были трудности с этим), но ваша проблема здесь в том, что вы назвали обе свои модели одинаковыми. Вы должны удалить его и воссоздать с более значимым именем.

+0

Благодарим :) Что касается EDM, я на самом деле назвал что-то полезное, однако визуальная студия предварительно заполнила все имена и прочее, и, похоже, она работала в первый раз (надеясь, что столкновений с именами не произойдет). Если я создам их, они снова смогут использовать одну и ту же строку соединения? –

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