2016-02-22 3 views
0

У меня есть страница .aspx, в которой я хочу загрузить файл Excel и вставить данные из файла excel в базу данных.Тип объекта не является частью модели для текущего контекста. при загрузке файла excel с страницы aspx

Я не имел ни малейшего представления об этой практике, поэтому искал в google и нашел учебное пособие, как это сделать. Затем был создан отдельный проект, следуя той же инструкции, что и в учебнике, и это сделано. Затем реализовано то же самое в моем реальном проекте.

Для выполнения своей задачи я использую EntityFramework. Теперь Everythings устанавливается на его месте, но когда я бегу мой проект и загрузить первенствует файл и нажмите на кнопку отправить, он дает мне ошибку The entity type tblUserDetails is not part of the model for the current context.

Вот мой код:

// Import to Database 
      using (pwpEntities dc = new pwpEntities()) 
      { 
       foreach (DataRow dr in ds.Tables[0].Rows) 
       { 
        string FirstName = dr["First Name"].ToString(); 
        var v = dc.tblUserDetailsProp.Where(a => a.vchFirstName.Equals(FirstName)).FirstOrDefault(); 
        if (v != null) 
        { 
         // Update here 
         v.CompanyName = dr["Company Name"].ToString(); 
         v.vchLocation = dr["Location"].ToString(); 
         v.vchFirstName = dr["First Name"].ToString(); 
         v.vchMobile1 = dr["Mobile 1"].ToString(); 
         v.vchMobile = dr["Mobile"].ToString(); 
         v.vchEmail = dr["Email"].ToString(); 
         v.vchUserName = dr["User Name"].ToString(); 
         v.ServiceId = Convert.ToInt32(dr["Service Id"]); 
         v.vchPassword = dr["Password"].ToString(); 
         v.UserTypeFkId = Convert.ToInt32(dr["UserTypeFkId"]); 
        } 
        else 
        { 
         // Insert 
         dc.tblUserDetailsProp.Add(new tblUserDetails 
         { 
          CompanyName = dr["Company Name"].ToString(), 
          vchLocation = dr["Location"].ToString(), 
          vchFirstName = dr["First Name"].ToString(), 
          vchMobile1 = dr["Mobile 1"].ToString(), 
          vchMobile = dr["Mobile"].ToString(), 
          vchEmail = dr["Email"].ToString(), 
          vchUserName = dr["User Name"].ToString(), 
          ServiceId = Convert.ToInt32(dr["Service Id"]), 
          vchPassword = dr["Password"].ToString(), 
          UserTypeFkId = Convert.ToInt32(dr["UserTypeFkId"]) 
         }); 
        } 
       } 

       dc.SaveChanges(); 
      } 

Это бросает исключение var v = dc.tblUserDetailsProp.Where(a => a.vchFirstName.Equals(FirstName)).FirstOrDefault();.

Другие страницы коды: MyModel.cs: -

public partial class tblUserDetails 
{ 
    public int intId { get; set; } 
    public string vchFirstName { get; set; } 
    public string vchLastName { get; set; } 
    public string vchUserName { get; set; } 
    public string vchPassword { get; set; } 
    public string vchEmail { get; set; } 
    public string vchIMEI { get; set; } 
    public Nullable<double> Weight { get; set; } 
    ... 
} 

MyModel.Context.cs: -

using System; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 

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

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

public DbSet<tblUserDetails> tblUserDetailsProp { get; set; } 
} 

Пожалуйста, помогите мне, я потерял много часов исключающих эту ошибку. Я посетил все сайты в Интернете, но не нашел решения.

+0

http://stackoverflow.com/questions/20688922/the-entity-type-type-is-not-part-of-the-model-for-the-current-context, http://stackoverflow.com/questions/22394603/get-the-entity-type-model-is-not-part-of-the-model-for-the-current-contex, http://stackoverflow.com/questions/13634819/entityset-system -invalidoperationexception-the-entity-type-is-not-part-of-the-the и т. д. Похоже, что существует множество решений, доступных из сообщения об ошибке Googling. Разве никто из них не работает для вас? – David

+0

Я попытался изменить строку подключения так же, как и по умолчанию. Попробовал проверить .edmx и пробовал несколько других трюков, но никто из них не работал. И еще одно: я очень в этом понятии, поэтому не могу сказать, что я правильно их реализовал или нет. но я стараюсь изо всех сил. , поэтому я буду рад, если вы посмотрите на код и поможете мне. –

ответ

-1

Если эта ошибка возникает в вашем проекте, это может быть по нескольким причинам. Двойная проверка и убедитесь, что сопоставление объектов правильное. Далее см. Это Post.

+0

Как проверить отображения объектов? как я вижу, все работает, когда я помещаю контрольные точки, но когда дело доходит до этой строки: «var v = dc.tblUserDetailsProp.Where (a => a.vchFirstName.Equals (FirstName)). FirstOrDefault();" он дает ошибку. –

+0

Вы создаете модель из базы данных? –

+0

, скорее всего, ваша модель (POCO или edmx) не отображает/не отображает DbSet для этого типа. это может быть потому, что ваш производный тип является частичным. – DevilSuichiro

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