Я пытаюсь создать универсальный c метод преобразования CSV-данных c. У него есть сущность - расширение. Пусть это будет "T", однако мне также нужно включить другой контекст, основанный на сущности. Есть две базы данных, каждая из которых имеет сущность пригорода и контекст БД.
Как у меня есть две обобщенные c переменные, так сказать, одна из которых является расширением ... Это то, с чего я начал:
public static Suburb FromCsv(string csvLine, CATALOGContext context)
{
if (csvLine == null) throw new ArgumentNullException(nameof(csvLine));
if (context == null) throw new ArgumentNullException(nameof(context));
var values = csvLine.Split(',');
if (context.States == null) return null;
if (values.Length <= 3) return null;
var suburb = new Suburb
{
PostCode = values[0],
SuburbName = values[1],
State = context.States.FirstOrDefault(s => s.StateShortName == values[2]),
Latitude = Convert.ToDouble(values[3], CultureInfo.CurrentCulture),
Longitude = Convert.ToDouble(values[4], CultureInfo.CurrentCulture)
};
return suburb;
}
Это то, что у меня было, но оно явно не правильно.
public static T FromCsv<T, I>(this T source, string csvLine, I context)
{
if (csvLine == null) throw new ArgumentNullException(nameof(csvLine));
if (context == null) throw new ArgumentNullException(nameof(context));
var values = csvLine.Split(',');
if (context.States == null) return null;
if (values.Length <= 3) return null;
var suburb = new Suburb
{
PostCode = values[0],
SuburbName = values[1],
State = context.States.FirstOrDefault(s => s.StateShortName == values[2]),
Latitude = Convert.ToDouble(values[3], CultureInfo.CurrentCulture),
Longitude = Convert.ToDouble(values[4], CultureInfo.CurrentCulture)
};
return suburb;
}
Он не знает, что это dbContext (контекст), поэтому мне нужно использовать предложение where, и я не уверен как это сделать. Кроме того, у каждого dbContext есть «Состояние», но это является ошибкой по вышеуказанной причине - он не знает своего контекста.
Как я могу иметь несколько обобщенных типов, один из которых является расширением - сущность, а другой - существом контекст (даже не уверен, что я могу иметь это), где вы можете использовать его с различными контекстами базы данных и т. д. c?