第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在代碼優(yōu)先實體框架中使用視圖

如何在代碼優(yōu)先實體框架中使用視圖

寶慕林4294392 2019-10-17 10:51:42
我如何首先在實體框架代碼中使用數(shù)據(jù)庫視圖,
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊

如果像我一樣,您僅對映射來自其他數(shù)據(jù)庫的實體(在本例中為erp)感興趣,以將其與應(yīng)用程序特定的實體相關(guān)聯(lián),那么可以像使用表一樣使用視圖(在以同樣的方式!)。顯然,如果您嘗試更新該實體,則如果視圖不可更新,則會出現(xiàn)異常。該過程與普通(基于表)實體的情況相同:


為視圖創(chuàng)建POCO類;例如FooView

在DbContext類中添加DbSet屬性

使用FooViewConfiguration文件為視圖設(shè)置其他名稱(在構(gòu)造函數(shù)中使用ToTable(“ Foo”);)或設(shè)置特定的屬性


public class FooViewConfiguration : EntityTypeConfiguration<FooView>      

{

    public FooViewConfiguration()

    {

        this.HasKey(t => t.Id);

        this.ToTable("myView");

    }

}

將FooViewConfiguration文件添加到modelBuilder中,例如,檢查Context的OnModelCreating方法:


protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

    modelBuilder.Configurations.Add(new FooViewConfiguration ());

}


查看完整回答
反對 回復(fù) 2019-10-17
?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗 獲得超3個贊

這可能是一個更新,但是要首先使用帶有EF Code的視圖,只需將[Table(“ NameOfView”)]添加到類的頂部,所有這些都應(yīng)該正常工作,而不必經(jīng)歷其他所有人正在經(jīng)歷的所有麻煩。同樣,您將不得不將其中一列報告為[key]列。這是我下面的實現(xiàn)示例代碼。


using System.ComponentModel.DataAnnotations;

using System.ComponentModel.DataAnnotations.Schema;


namespace SomeProject.Data

{

    [Table("SomeView")]

    public class SomeView

    {

        [Key]

        public int NameID { get; set; }

        public string Name { get; set; }

    }

}

這是上下文的樣子


using System.Data.Entity;


namespace SomeProject.Data

{

    public class DatabaseContext : DbContext

    {

        public DbSet<SomeView> SomeViews { get; set; }

    }

}


查看完整回答
反對 回復(fù) 2019-10-17
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊

如果您想要的只是一堆非規(guī)范化的對象,那么您可能只是在類中創(chuàng)建了一個公共的get-only IQueryable<TDenormolized>屬性DbContext。

在中,get您將返回Linq結(jié)果,以將反標(biāo)準(zhǔn)化的值投影到反標(biāo)準(zhǔn)化的對象中。這可能比編寫DB View更好,因為您正在編程,而不僅限于使用select語句。而且它是編譯時類型安全的。

請注意,不要觸發(fā)枚舉之類的ToList()調(diào)用,因為它們會打斷延遲的查詢,您最終可能會從數(shù)據(jù)庫中獲得一百萬條記錄,并在應(yīng)用程序服務(wù)器上對其進(jìn)行過濾。

我不知道這是否是正確的方法,但我嘗試過并且對我有用。


查看完整回答
反對 回復(fù) 2019-10-17
  • 3 回答
  • 0 關(guān)注
  • 577 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號