实体框架:如何创建返回数据对象的方法

本文关键字:返回 数据 对象 方法 创建 框架 何创建 实体 | 更新日期: 2023-09-27 18:05:58

我有以下Method,它返回基于作为参数传递的Primary Key的记录:

class Program
{
    public static string GetRecord(Int64 pk)
    {
        using (var entityDataModel = new EntityDataModel())
        {
           var record = entityDataModel.Catalog.Find(pk);
           return record.VehicleMake;
        }
    }
    static void Main(string[] args)
    {
        Console.WriteLine(GetRecord(7341367950));
        Console.ReadKey();
    }
}

与上面不同,我需要方法返回一个对象,该对象根据调用者传递的主键作为参数来公开记录:我在这里可以使用什么数据类型?

像这样:(示例)

   class Program
    {
        public static SomeDataType GetRecord(Int64 pk)
        {
            using (var entityDataModel = new EntityDataModel())
            {
                //Return record based on PK passed
               return entityDataModel.Catalog.Find(pk);
            }
        }
        static void Main(string[] args)
        {
            // Call the method here and return the data object
            var record = GetRecord(7341367950);
            Console.WriteLine(record.VehicleMake);
            //Or like this:
            Console.WriteLine(GetRecord(7341367950).VehicleMake);
            Console.ReadKey();
        }
    }

更新:这里是模型:

public partial class EntityDataModel : DbContext
{
    public EntityDataModel()
        : base("name=EntityDataModel")
    {
    }
    public virtual DbSet<Catalog> Catalog { get; set; }
    public virtual DbSet<Model> Model { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Catalog>()
            .Property(e => e.VehicleIdentificationNumber)
            .IsFixedLength();
    }
}

实体框架:如何创建返回数据对象的方法

答案:

我只是使用实体,在本例中是实体模型目录,它表示数据库中的一个表:

    public static Catalog GetRecord(Int64 pk)
    {
        using (EntityDataModel entityDataModel = new EntityDataModel())
        {
            return entityDataModel.Catalog.Find(pk);
        }
    }

    static void Main(string[] args)
    {
        Catalog record = GetRecord(7341367950);
        Console.WriteLine(record.VehicleMake);
        Console.ReadKey();
    }