我正在为我的 C# 项目寻找 ORM。我试过 ADO.net 但我不太明白

I'm looking for an ORM for my C# project. I tried ADO.net but i can't quite understand it

我根据现有数据库在我的项目中添加了一个新的 ADO.NET ORM 对象。我能够创建一个新对象,但我不太明白如何将我的新对象插入数据库并获取从中生成的 ID。

从link中显示的示例来看,我只是不明白他们的 TestDBEntities Class

是什么

我也乐于接受任何基于经验的 ORM 建议!谢谢!

        public static void Insert_Demande_Willy(string ModelPath)
    {
        using (TestDBEntities ctx = new TestDBEntities())
        {
            Model.CreateDessin newDemande = new CreateDessin()
            {
                DateProduite = DateTime.Now,
                GenerateBom = Willy.Properties.Settings.Default.GenerateBom.ToString(),
                MailAdress = Willy.Properties.Settings.Default.Email,
                NotifyRBRE = Willy.Properties.Settings.Default.Wilma_RBRE.ToString(),
                NotifyRBTK = Willy.Properties.Settings.Default.Wilma_RBTK.ToString(),
                NotifyTLS = Willy.Properties.Settings.Default.Wilma_TLS.ToString(),
                NotifyTQ = Willy.Properties.Settings.Default.Wilma_TQ.ToString(),
                PathDessin = ModelPath,
                SendingComputer = Environment.MachineName,
                UserName = Environment.UserName
            };

            Insert_Demande_Willy_DTL(newDe)

        }

    }

    /// <summary>
    /// Importer Statuts enumeration
    /// Setter priorité
    /// NoECO juste quand check? 
    /// IF DEV TESTED BY 
    /// </summary>
    /// <param name="ID"></param>
    private static void Insert_Demande_Willy_DTL(int ID)
    {
        Model.CreateDessinDTL newDemandeDTL = new CreateDessinDTL()
        {
            ConfigName = "",
            CreatePDF = Willy.Properties.Settings.Default.GeneratePDF.ToString(),
            C_ID = ID,
            NoECO = Willy.Properties.Settings.Default.EcoName,
            Priority = 2,
            Statut = "Willy2",


        };
    }

Source 1 Source 2

同意楼上评论者的观点。 EF6 非常好。另外——我是 EF6 的新手,但我相信您可以将其设置为在现有数据库上以代码优先的方式工作,因为您可以使用 EFPowerTools 生成模型,然后进行任何更改您的代码将自动更新到您的数据库中。

https://msdn.microsoft.com/en-us/library/jj200620(v=vs.113).aspx

我不知何故找到了一种方法来使它起作用。遗憾的是,某些对象的某些成员不会随 Intellisence 显示。

    /// <summary>
    /// Setter priorité
    /// NoECO juste quand check? 
    /// </summary>
    /// <param name="ID"></param>
    private static void Insert_Demande_Willy_DTL(int ID)
    {
        {

            DemoInfo_IndusEntities context = new DemoInfo_IndusEntities();

            context.CreateDessinDTL.Add(new CreateDessinDTL_Demo()
            {
                ConfigName = "",
                C_ID = ID,
                NoECO = Willy.Properties.Settings.Default.EcoName,
                Priority = 2,
                Statut = AppConfig.Controller.Statuts.Willy.Willy2,
                TestedBy = Environment.UserName
                //CreatePDF = Willy.Properties.Settings.Default.GeneratePDF.ToString(),


            });

            context.SaveChanges();
        }}