无法将类型'TestLinq.UserData'转换为T'estLinq.userData'

时间:2019-03-06 17:04:18

标签: entity-framework entity-framework-6

仍在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的原始类。

是否可以使用基类返回此对象?

0 个答案:

没有答案