Rumah pangkalan data tutorial mysql [.NET] Titan ORM 中执行数据添加Insert-快速示例

[.NET] Titan ORM 中执行数据添加Insert-快速示例

Jun 07, 2016 pm 03:07 PM
.net insert orm melaksanakan data Tambah ke

本 示例 使用SqlServer2005,先在 数据 库中创建一张表, 其中CustomerId是主键且自动增长;CustomerType用来保存int枚举,字段类型使用int;InsertTime将系统时间作为默认值 CREATE TABLE [ Customer ] ( [ CustomerId ] [ int ] IDENTITY ( 1 , 1 ) NOT NU

示例使用SqlServer2005,先在数据库中创建一张表,

其中CustomerId是主键且自动增长;CustomerType用来保存int枚举,字段类型使用int;InsertTime将系统时间作为默认值

<span>CREATE</span> <span>TABLE</span> <span>[</span><span>Customer</span><span>]</span><span>(
    </span><span>[</span><span>CustomerId</span><span>]</span> <span>[</span><span>int</span><span>]</span> <span>IDENTITY</span>(<span>1</span>,<span>1</span>) <span>NOT</span> <span>NULL</span><span>,
    </span><span>[</span><span>CustomerName</span><span>]</span> <span>[</span><span>nvarchar</span><span>]</span>(<span>50</span>) <span>NOT</span> <span>NULL</span><span>,
    </span><span>[</span><span>CustomerType</span><span>]</span> <span>[</span><span>int</span><span>]</span> <span>NOT</span> <span>NULL</span><span>,
    </span><span>[</span><span>Description</span><span>]</span> <span>[</span><span>int</span><span>]</span> <span>NULL</span><span>,
    </span><span>[</span><span>InsertTime</span><span>]</span> <span>[</span><span>datetime</span><span>]</span> <span>NOT</span> <span>NULL</span> <span>default</span>(<span>getdate</span>()), <span>--</span><span>用于测试在<strong>数据</strong>库中设置默认值</span>
    <span>CONSTRAINT</span> <span>[</span><span>PK_Customer</span><span>]</span> <span>PRIMARY</span> <span>KEY</span>(<span>[</span><span>CustomerId</span><span>]</span><span>)
) </span><span>ON</span> <span>[</span><span>PRIMARY</span><span>]</span>
Salin selepas log masuk

接下来创建相应的实体类,可以使用枚举:

<span>    public</span> <span>enum</span><span> CustomerType
    {
        Home, Abroad
    }

    [Table]
    </span><span>public</span> <span>class</span><span> Customer
    {
        [Column(IsPrimaryKey</span>=<span>true</span><span>)]
        [SqlServerColumn(IsIdentity</span>=<span>true</span>)]<span>//</span><span>针对SqlServer特有的标识列</span>
        <span>public</span> <span>int</span> CustomerId { <span>get</span>; <span>set</span><span>; } 

        [Column]
        </span><span>public</span> <span>string</span> CustomerName { <span>get</span>; <span>set</span><span>; } 

        [Column]
        </span><span>public</span> CustomerType CustomerType { <span>get</span>; <span>set</span><span>; }

        [Column]
        </span><span>public</span> <span>string</span> Description { <span>get</span>; <span>set</span><span>; }

        [Column]
        [SqlServerColumn(GenerateInsert</span>=AttributeBoolean.False)]<span>//<strong>数据</strong>库中已有默认值,</span><span>告诉Titan在生成Insert语句时不要包含本列</span>
        <span>public</span> DateTime InsertTime { <span>get</span>; <span>set</span><span>; } 
    }</span>
Salin selepas log masuk

使用Titan往数据库中添加一条记录:

<span>    class</span><span> Program
    {
        </span><span>static</span> <span>void</span> Main(<span>string</span><span>[] args)
        {
            IDbSession se </span>=<span> OpenDbSession();

            Customer customer </span>= <span>new</span><span> Customer();
            customer.CustomerName </span>= <span>"</span><span>customer name</span><span>"</span><span>;
            customer.CustomerType </span>=<span> CustomerType.Abroad;

            se.Insert(customer);
            Console.WriteLine(</span><span>string</span>.Format(<span>"</span><span><strong>执行</strong>Insert后标识列返回的CustomerId={0}</span><span>"</span><span>,customer.CustomerId));

            se.Close();

            Console.ReadLine();
        }

        </span><span>static</span><span> IDbSession OpenDbSession()
        {
            </span><span>//</span><span>使用SqlServer。如果是其它<strong>数据</strong>库则可以使用:OracleSqlProvider,MySqlSqlProvider,SQLiteSqlProvider...</span>
            Type providerType = <span>typeof</span><span>(SqlServerSqlProvider);

            </span><span>//</span><span><strong>数据</strong>库连接支付串</span>
            <span>string</span> connectionString = <span>@"</span><span>Data Source=192.168.17.129\SQLEXPRESS;Initial Catalog=titandemo;User Id=sa;Password=123456;</span><span>"</span><span>;

            </span><span>//</span><span>sql语句追踪,可以跟踪Titan生成的Sql语句,此处使用控制台中查看生成的Sql语句</span>
            ISqlTracer[] sqlTracers = <span>new</span> ISqlTracer[] { <span>new</span><span> ConsoleSqlTracer() };

            </span><span>return</span><span> DbSessionFactory.CreateAndOpenSession(providerType, connectionString, sqlTracers); 
        }
    }</span>
Salin selepas log masuk

查看数据库已经添加成功:

控制台程序运行截屏:

从中可以看到生成的Sql语句中不包含CustomerId列和InsertTime列,

由于CustomerId使用了[SqlServerColumn(IsIdentity=true)]标注,Titan在生成Insert语句时不会包含此列,默认情况下还会在Insert语句中包含set @4=SCOPE_Identity()用以取回数据库自动生成的值。

另外数据库中InsertTime列使用了默认值,并且实体类属性中使用了[SqlServerColumn(GenerateInsert=AttributeBoolean.False)]标注,因此生成的Sql语句中也不包含此列。 

关于IsIdentity=true标注,如果在[Column]标注中强制不返回,那么Insert语句中set @4=SCOPE_Identity()语句不会被生成。代码如下(注意红色部分):

<span>    [Table]
    </span><span>public</span> <span>class</span><span> Customer
    {
        [Column(IsPrimaryKey </span>= <span>true</span>, <span>ReturnAfterInsert =</span><span><span> AttributeBoolean.False</span>)]
        [SqlServerColumn(IsIdentity </span>= <span>true</span>)]<span>//</span><span>针对SqlServer特有的标识列</span>
        <span>public</span> <span>int</span> CustomerId { <span>get</span>; <span>set</span>; }
Salin selepas log masuk

再运行程序,发现Insert语句中不再包含set @4=SCOPE_Identity(),CustomerId的值仍为0。

 

 

 

 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1272
29
Tutorial C#
1251
24
Sumber terbuka! Di luar ZoeDepth! DepthFM: Anggaran kedalaman monokular yang cepat dan tepat! Sumber terbuka! Di luar ZoeDepth! DepthFM: Anggaran kedalaman monokular yang cepat dan tepat! Apr 03, 2024 pm 12:04 PM

0. Apakah fungsi artikel ini? Kami mencadangkan DepthFM: model anggaran kedalaman monokular generatif yang serba boleh dan pantas. Sebagai tambahan kepada tugas anggaran kedalaman tradisional, DepthFM juga menunjukkan keupayaan terkini dalam tugas hiliran seperti mengecat kedalaman. DepthFM cekap dan boleh mensintesis peta kedalaman dalam beberapa langkah inferens. Mari kita baca karya ini bersama-sama ~ 1. Tajuk maklumat kertas: DepthFM: FastMonocularDepthEstimationwithFlowMatching Pengarang: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Apr 01, 2024 pm 07:46 PM

Prestasi JAX, yang dipromosikan oleh Google, telah mengatasi Pytorch dan TensorFlow dalam ujian penanda aras baru-baru ini, menduduki tempat pertama dalam 7 penunjuk. Dan ujian tidak dilakukan pada TPU dengan prestasi JAX terbaik. Walaupun dalam kalangan pembangun, Pytorch masih lebih popular daripada Tensorflow. Tetapi pada masa hadapan, mungkin lebih banyak model besar akan dilatih dan dijalankan berdasarkan platform JAX. Model Baru-baru ini, pasukan Keras menanda aras tiga hujung belakang (TensorFlow, JAX, PyTorch) dengan pelaksanaan PyTorch asli dan Keras2 dengan TensorFlow. Pertama, mereka memilih satu set arus perdana

Kelajuan Internet Data Selular Perlahan pada iPhone: Pembetulan Kelajuan Internet Data Selular Perlahan pada iPhone: Pembetulan May 03, 2024 pm 09:01 PM

Menghadapi ketinggalan, sambungan data mudah alih perlahan pada iPhone? Biasanya, kekuatan internet selular pada telefon anda bergantung pada beberapa faktor seperti rantau, jenis rangkaian selular, jenis perayauan, dsb. Terdapat beberapa perkara yang boleh anda lakukan untuk mendapatkan sambungan Internet selular yang lebih pantas dan boleh dipercayai. Betulkan 1 – Paksa Mulakan Semula iPhone Kadangkala, paksa memulakan semula peranti anda hanya menetapkan semula banyak perkara, termasuk sambungan selular. Langkah 1 – Hanya tekan kekunci naikkan kelantangan sekali dan lepaskan. Seterusnya, tekan kekunci Turun Kelantangan dan lepaskannya semula. Langkah 2 - Bahagian seterusnya proses adalah untuk menahan butang di sebelah kanan. Biarkan iPhone selesai dimulakan semula. Dayakan data selular dan semak kelajuan rangkaian. Semak semula Betulkan 2 – Tukar mod data Walaupun 5G menawarkan kelajuan rangkaian yang lebih baik, ia berfungsi lebih baik apabila isyarat lemah

Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! May 06, 2024 pm 04:13 PM

Video terbaru robot Tesla Optimus dikeluarkan, dan ia sudah boleh berfungsi di kilang. Pada kelajuan biasa, ia mengisih bateri (bateri 4680 Tesla) seperti ini: Pegawai itu juga mengeluarkan rupanya pada kelajuan 20x - pada "stesen kerja" kecil, memilih dan memilih dan memilih: Kali ini ia dikeluarkan Salah satu sorotan video itu ialah Optimus menyelesaikan kerja ini di kilang, sepenuhnya secara autonomi, tanpa campur tangan manusia sepanjang proses. Dan dari perspektif Optimus, ia juga boleh mengambil dan meletakkan bateri yang bengkok, memfokuskan pada pembetulan ralat automatik: Berkenaan tangan Optimus, saintis NVIDIA Jim Fan memberikan penilaian yang tinggi: Tangan Optimus adalah robot lima jari di dunia paling cerdik. Tangannya bukan sahaja boleh disentuh

Daya hidup kecerdasan super membangkitkan! Tetapi dengan kedatangan AI yang mengemas kini sendiri, ibu tidak perlu lagi bimbang tentang kesesakan data Daya hidup kecerdasan super membangkitkan! Tetapi dengan kedatangan AI yang mengemas kini sendiri, ibu tidak perlu lagi bimbang tentang kesesakan data Apr 29, 2024 pm 06:55 PM

Saya menangis hingga mati. Dunia sedang membina model besar. Data di Internet tidak mencukupi. Model latihan kelihatan seperti "The Hunger Games", dan penyelidik AI di seluruh dunia bimbang tentang cara memberi makan data ini kepada pemakan yang rakus. Masalah ini amat ketara dalam tugas berbilang modal. Pada masa mereka mengalami kerugian, pasukan pemula dari Jabatan Universiti Renmin China menggunakan model baharu mereka sendiri untuk menjadi yang pertama di China untuk menjadikan "suapan data yang dijana model itu sendiri" menjadi kenyataan. Selain itu, ia merupakan pendekatan serampang dua mata dari segi pemahaman dan sisi penjanaan Kedua-dua pihak boleh menjana data baharu berbilang modal yang berkualiti tinggi dan memberikan maklum balas data kepada model itu sendiri. Apakah model? Awaker 1.0, model berbilang modal besar yang baru sahaja muncul di Forum Zhongguancun. Siapa pasukan itu? Enjin Sophon. Diasaskan oleh Gao Yizhao, pelajar kedoktoran di Sekolah Kecerdasan Buatan Hillhouse Universiti Renmin.

Dokumen berbilang modal Alibaba 7B memahami model besar memenangi SOTA baharu Dokumen berbilang modal Alibaba 7B memahami model besar memenangi SOTA baharu Apr 02, 2024 am 11:31 AM

SOTA baharu untuk keupayaan memahami dokumen multimodal! Pasukan Alibaba mPLUG mengeluarkan kerja sumber terbuka terkini mPLUG-DocOwl1.5, yang mencadangkan satu siri penyelesaian untuk menangani empat cabaran utama pengecaman teks imej resolusi tinggi, pemahaman struktur dokumen am, arahan mengikut dan pengenalan pengetahuan luaran. Tanpa berlengah lagi, mari kita lihat kesannya dahulu. Pengecaman satu klik dan penukaran carta dengan struktur kompleks ke dalam format Markdown: Carta gaya berbeza tersedia: Pengecaman dan kedudukan teks yang lebih terperinci juga boleh dikendalikan dengan mudah: Penjelasan terperinci tentang pemahaman dokumen juga boleh diberikan: Anda tahu, "Pemahaman Dokumen " pada masa ini Senario penting untuk pelaksanaan model bahasa yang besar. Terdapat banyak produk di pasaran untuk membantu pembacaan dokumen. Sesetengah daripada mereka menggunakan sistem OCR untuk pengecaman teks dan bekerjasama dengan LLM untuk pemprosesan teks.

Satu kad menjalankan Llama 70B lebih pantas daripada dua kad, Microsoft hanya meletakkan FP6 ke dalam A100 | Satu kad menjalankan Llama 70B lebih pantas daripada dua kad, Microsoft hanya meletakkan FP6 ke dalam A100 | Apr 29, 2024 pm 04:55 PM

FP8 dan ketepatan pengiraan titik terapung yang lebih rendah bukan lagi "paten" H100! Lao Huang mahu semua orang menggunakan INT8/INT4, dan pasukan Microsoft DeepSpeed ​​​​memaksa diri mereka menjalankan FP6 pada A100 tanpa sokongan rasmi daripada Nvidia. Keputusan ujian menunjukkan bahawa kaedah baharu TC-FPx FP6 kuantisasi pada A100 adalah hampir atau kadangkala lebih pantas daripada INT4, dan mempunyai ketepatan yang lebih tinggi daripada yang terakhir. Selain itu, terdapat juga sokongan model besar hujung ke hujung, yang telah bersumberkan terbuka dan disepadukan ke dalam rangka kerja inferens pembelajaran mendalam seperti DeepSpeed. Keputusan ini juga mempunyai kesan serta-merta pada mempercepatkan model besar - di bawah rangka kerja ini, menggunakan satu kad untuk menjalankan Llama, daya pemprosesan adalah 2.65 kali lebih tinggi daripada dua kad. satu

Kedudukan QS 2024 dikeluarkan! Sains komputer MIT mendominasi senarai, Universiti Tsinghua di tempat ke-11, Universiti Peking di tempat ke-15 Kedudukan QS 2024 dikeluarkan! Sains komputer MIT mendominasi senarai, Universiti Tsinghua di tempat ke-11, Universiti Peking di tempat ke-15 Apr 18, 2024 pm 09:04 PM

Kedudukan Universiti Dunia 2024QS mengikut Subjek ada di sini! Secara keseluruhan, terdapat sedikit perubahan daripada 2023. Menurut maklumat laman web rasmi, Kedudukan Universiti Dunia 2024QS mengikut Subjek merangkumi 55 subbahagian dan 5 bidang akademik utama. Sebanyak 1,559 universiti mengambil bahagian dalam ranking tersebut, 64 daripadanya adalah muka baharu tahun ini (iaitu, mereka tidak akan muncul dalam ranking 2023). Di antara 64 kolej dan universiti ini, 14 benar-benar muncul buat kali pertama. Antaranya ialah Akademi Sains Universiti China. Mengikut mata pelajaran yang diperhalusi, Muzik merupakan mata pelajaran baharu yang diperkenalkan tahun ini. Di samping itu, kedudukan sains data dan kecerdasan buatan telah diperluaskan, dengan 51 universiti baharu ditambah pada kedudukan tersebut. Lima teratas dalam senarai keseluruhan ialah: Institut Teknologi Massachusetts, Universiti Cambridge, Universiti Oxford dan Universiti Harvard

See all articles