Опитвам се да използвам Entity Framework, за да добавя записи към база данни от въвеждане на уеб формуляр, които влизат в база данни на sqlserver. Всичко работи добре локално.
Използвах webmatrix, за да публикувам сайта си на моя отдалечен сървър, уебсайтът и моята локална версия на базата данни са успешно пресъздадени на отдалечения сървър с всички данни.
Когато обаче дойде време за добавяне на записи към базата данни, това дава грешка на отдалечения сървър, който успях да проследя до реда ctx.Students.Add.
using (var ctx = new HDPS_SchoolDataEntities())
{
SchoolDataModel.Student temp = new SchoolDataModel.Student();
temp.Name = this.FirstName;
temp.Surname = this.Surname;
temp.Parents = this.Parents;
ctx.Students.Add(temp);
ctx.SaveChanges();
}
Не мога да намеря разлика между моята локална версия, която работи, и тази на отдалечения сървър, която не работи. Изглежда, че web.config е конфигуриран според очакванията и всички необходими dll файлове са в моята папка bin, но просто няма да работи на отдалечения сървър... някакви идеи какво може да не е наред?
Ами забравих съобщението за грешка!
редактиране
след инсталиране на .net 4.5 и промяна на режима на свързване от Windows удостоверяване на SQL удостоверяване грешката сега става:
Кодът, генериран с помощта на шаблоните T4 за Database First и Model First, може да не работи правилно, ако се използва в режим Code First. За да продължите да използвате Database First или Model First, уверете се, че низът за свързване на Entity Framework е посочен в конфигурационния файл на изпълняващото се приложение. За да използвате тези класове, които са генерирани от Database First или Model First, с Code First добавете допълнителна конфигурация с помощта на атрибути или DbModelBuilder API и след това премахнете кода, който хвърля това изключение.
Всичко трябва да е същото на уеб сървъра, тъй като целият уебсайт се копира, но работи добре локално, така че не съм сигурен какъв е проблемът...
Добре, разреших проблема с помощта на тази уеб страница
http://blog.oneunicorn.com/2012/02/26/dont-use-code-first-by-mistake/
Накратко изглежда, че webmatrix не включва частта с метаданни на низа за връзка при качване на сървъра, като по този начин EDMX файлът, съдържащ цялата информация, съпоставяща класовете към таблиците на базата данни, не е бил препратен, причинявайки неуспех на заявки към рамката.
След като поставих оригиналния низ за връзка, генериран от съветника на Entity Framework, на сървъра, всичко работи добре.