仍在EF6中学习概念(学习)这不是生产代码;这只是为了学习...
我正在尝试从直接的SQL ODBC调用迁移到EF6,并尝试复制代码中当前具有的方法的功能。
考虑以下代码:
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;
}
我在最后一行收到编译错误: 返回(userData)ud; '无法将类型'TestLinq.UserData'转换为'TestLinq.userData'
我有点理解发生了什么,但我认为我可以在返回时上课。 UserData包含在返回的查询中,userData是UserData的原始类。
是否可以使用基类返回此对象?