Я пробую новый предварительный просмотр SubSonic 3, но я не уверен насчет шаблонов, которые я должен использовать для основных операций CRUD в моем проекте MVC.
Я пытаюсь сохранить как можно больше своей логики данных в своих моделях, поэтому я добавил несколько статических методов CRUD в частичный класс каждой модели.
Например, допустим, у меня есть таблица конфигурации, в которой должна быть только одна запись. Итак, мой частичный класс может выглядеть примерно так:
public partial class Configuration{
// cut down; mocking hooks here IRL
private static IRepository<Configuration> Table = new MyRepository<Configuration>();
public static Configuration Retrieve()
{
var config = Table.GetAll().FirstOrDefault();
if (config == null)
{
config = new Configuration();
Table.Add(config);
}
return config;
}
public static void Update(Configuration target)
{
Table.Update(target);
}
}
В настоящее время это не работает, так как в таблице конфигурации есть столбец идентификаторов для первичного ключа, а при добавлении новой записи в таблицу выдается стандартная ошибка «Невозможно вставить явное значение для столбца идентификаторов». SubSonic 3, по-видимому, не генерирует классы, которые при их обновлении хорошо сочетаются с правилами схемы базы данных (т. Е. Без значений по умолчанию, без обнуляемых примитивов для значений, которые обнуляются в базе данных и т. Д.).
Теперь я могу изменить свою таблицу и шаблон, чтобы обойти эти проблемы, но мне интересно, когда я не могу обойти эту проблему - когда мне нужно добавить новую запись в базу данных и иметь личность в качестве моего первичного ключа.
Мне также интересно, является ли этот шаблон даже правильным или нет. SubSonic предлагает вам несколько способов работы с хранилищем, поэтому я не уверен, какой из них мне следует использовать. Я хотел бы использовать мои модели как можно больше (иначе почему бы не просто Linq to Sql?), Поэтому я не хочу использовать добротность построения запросов SubSonic при попытке CRUD моих моделей.
Что мне здесь делать? Любой совет по шаблонам CRUD для использования SubSonic 3 в моем проекте MVC будет приветствоваться и + 'd. Также приветствуются ссылки на веб-сайты, которые освещают эту тему для SubSonic 3, но не имеют высокого рейтинга в поиске Google ...
напрямую спросил Роб ( ссылка здесь ). По крайней мере, для моей БД в сгенерированном коде есть ошибка showtopper. Аааа, альфа софт.
UPDATE
С выходом Subsonic3 , можем ли мы немного поднять этот вопрос?