У меня есть страница .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; }
}
Пожалуйста, помогите мне, я потерял много часов исключающих эту ошибку. Я посетил все сайты в Интернете, но не нашел решения.
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
Я попытался изменить строку подключения так же, как и по умолчанию. Попробовал проверить .edmx и пробовал несколько других трюков, но никто из них не работал. И еще одно: я очень в этом понятии, поэтому не могу сказать, что я правильно их реализовал или нет. но я стараюсь изо всех сил. , поэтому я буду рад, если вы посмотрите на код и поможете мне. –