Все еще разрабатываю концепции в EF6 (обучение). Это не рабочий код; это только для обучения ...
Я экспериментирую с переходом на EF6 из прямых вызовов ODBC SQL и пытаюсь дублировать функции методов, которые у меня есть в моем коде.
Рассмотрим этот код:
public class user
{
[Key]
public int pkID;
public string ForeignID;
public string UserName;
public virtual List<userData> UserDatas { get; set; }
}
public class userData
{
[Key]
public int pkID;
public int fkUserID;
public string ColumnName;
public string ColumnValue;
public bool IsOverrode;
public string OverrideValue;
}
class Program
{
static TestDataEntities db = new TestDataEntities();
static void Main(string[] args)
{
var record = db.Users.Select(x => new { x.UserName, x.pkID }).FirstOrDefault();
Console.WriteLine(record);
var record2 = db.Users.Include(x => x.UserDatas).FirstOrDefault();
record2.UserName = "JohnTestNew";
db.SaveChanges();
var ud = record2.UserDatas.Where(x => x.ColumnName.ToUpper().Contains("FIRSTNAME")).FirstOrDefault();
foreach (var item in record2.UserDatas)
Console.WriteLine(item.ColumnName);
Console.ReadLine();
}
static userData TestReturn()
{
var record2 = db.Users.Include(x => x.UserDatas).FirstOrDefault();
var ud = record2.UserDatas.Where(x => x.ColumnName.ToUpper().Contains("FIRSTNAME")).FirstOrDefault();
return (userData)ud;
}
В последней строке я получаю сообщение об ошибке компиляции:
return (userData) ud;
«Невозможно преобразовать тип« TestLinq.UserData »в« TestLinq.userData »
Я вроде понимаю, что происходит, но я думал, что смогу сыграть класс по возвращении. UserData содержится в возвращаемом запросе, userData является необработанным классом того, что такое UserData.
Есть ли способ вернуть этот объект, используя базовый класс?