Я пытаюсь создать метод расширения для моего DBContext (db
) и один из IDbSets. Я хотел бы иметь возможность вызывать расширение, как это:Попытка создать метод добавления расширения для IDbSet
db.UploadedFile.AddFile
(
SessionUser.ProfileId,
model.UploadingFile.FileName,
serverPath,
model.ProjectSubmissionId
);
Это похоже на работу, но я хотел бы, чтобы позже, после db.SaveChanges(), получить первичный ключ ID добавленной стоимости.
Это то, что я до сих пор:
public static class UploadedFileExtensions
{
public static bool AddFile
(
this IDbSet<UploadedFile> files,
Guid uploadedByProfileId,
string fileName,
string filePath,
Guid? associatedWithId
)
{
var newFile = new UploadedFile
{
UploadedByProfileId = uploadedByProfileId,
FileName = fileName,
FilePath = filePath,
FileExtension = Path.GetExtension(fileName),
Submitted = DateTime.Now,
Modified = DateTime.Now,
IsActive = true
};
if (associatedWithId != null) newFile.AssociatedWithId = associatedWithId;
return files.AddFile(newFile);
//return true;
}
public static bool AddFile(this IDbSet<UploadedFile> files, UploadedFile file)
{
files.Add(file);
return true;
}
}
Где мой контекст базы данных? Используете ли вы репозиторий и единицу шаблонов работы? – Roger
Когда мы начали этот проект, нам сказали, что нам не нужен шаблон репозитория. Я не согласился, но это путь, на котором мы живем. Я все еще могу начать использовать шаблон репозитория. Каковы некоторые хорошие сайты с текущими примерами? –
Вы можете попробовать здесь http://www.codeproject.com/Tips/1036630/Using-Effort-Entity-Framework-Unit-Testing-Tool или здесь http://www.asp.net/mvc/overview/older- версии/get-started-with-ef-5-using-mvc-4/implementation-the-repository-and-unit-of-work-patterns-in-as-asp-net-mvc-приложение – Roger