Невозможно преобразовать тип 'TestLinq.UserData' в T'estLinq.userData ' - PullRequest
0 голосов
/ 06 марта 2019

Все еще разрабатываю концепции в 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.

Есть ли способ вернуть этот объект, используя базовый класс?

...