Если именно так вы однозначно определяете потенциальную запись для обновления (или вставляете, если она не найдена):
e.Hours == todatabase.Hours && e.SeasonId == todatabase.SeasonId && e.StationId == todatabase.StationId
Затем сначала попытайтесь получить эту запись. Если он найден, обновите его. Если нет, вставьте его. Возможно, что-то вроде этого:
var record = sd.stationSeasonNNcoefs.SingleOrDefault(e => e.Hours == todatabase.Hours && e.SeasonId == todatabase.SeasonId && e.StationId == todatabase.StationId);
if (record == null)
{
sd.Add(todatabase);
}
else
{
record.WeightsSeason = todatabase.WeightsSeason;
}
sd.SaveChanges();
Вызов SingleOrDefault
либо возвратит одну совпадающую запись, либо null
, если подходящая запись не найдена. (Примечание: оно выдаст исключение, если будет найдено более одного.)
Можно всегда добавлять частичный класс с тем же именем как класс LinqToSql и затем определять собственные параметры и функции. Они затем будут доступны как параметры объекта и методы для этого объекта, тот же путь, как автоматически сгенерированные методы LinqToSql доступны.
Пример: у Вас есть класс LinqToSql, названный Car
, который отображается на таблицу Car в DB. Можно затем добавить файл к App_Code со следующим кодом в нем:
public partial class Car {
// Add properties and methods to extend the functionality of Car
}
я не уверен, отвечает ли это полностью Вашему требованию изменения способа, которым Перечисления отображаются в столбец. Однако Вы могли добавить параметр, где получить/установить свойства будут работать для отображения перечислений, в которых Вы нуждаетесь при сохранении вещей нечувствительными к регистру.