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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

DbSet 查找始終返回 null

DbSet 查找始終返回 null

C#
尚方寶劍之說 2023-07-09 15:22:30
我正在構(gòu)建 url 縮短器來提高我在 ASP.NET Core 中的技能,但在使用實(shí)體框架時(shí)遇到了問題 -方法總是從我的數(shù)據(jù)庫.Find()返回。null首先,我創(chuàng)建了帶有自定義鍵字段的數(shù)據(jù)庫記錄類public class DbField    {        [Key]        public string hash { get; set; }        public string link { get; set; }    }然后將其應(yīng)用到上下文中public class UrlShorterContext : DbContext    {        public DbSet<DbField> UrlHashes { get; set; }        public UrlShorterContext(DbContextOptions<UrlShorterContext> options)            : base(options)        {            Database.EnsureCreated();        }    }ConfigureServices將上下文添加到with中的服務(wù)string connection = Configuration.GetConnectionString("DefaultConnection");services.AddDbContext<UrlShorterContext>(options => options.UseSqlServer(connection));然后將其應(yīng)用到控制器中UrlShorterContext db;public HomeController(UrlShorterContext context){      db = context;}public IActionResult Index(string url,[FromServices] IComputeHash computeService)        {            string urlHash = computeService.Compute(url);//generates hash from url            DbField field = db.UrlHashes.Find(urlHash);            if (field == null)            {                 db.UrlHashes.Add(new DbField { hash = urlHash, link = url });                return View("View1");            }            return View("View2");...第一次運(yùn)行時(shí),數(shù)據(jù)庫為空,操作獲取 url,對(duì)其進(jìn)行哈希處理,將其添加到數(shù)據(jù)庫并返回“View1”。.Find()在使用相同 url 的第二次運(yùn)行中,必須在方法中找到它,field必須為其分配值,并且必須返回“View2”。但以某種方式field獲得 的價(jià)值null。
查看完整描述

1 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

將哈希 url 添加到 UrlHashes DbSet 后,您需要調(diào)用.SaveChanges()以確保更改已寫入數(shù)據(jù)庫。


string urlHash = computeService.Compute(url);//generates hash from url

DbField field = db.UrlHashes.Find(urlHash);


if (field == null)

    db.UrlHashes.Add(new DbField { hash = urlHash, link = url });

    db.SaveChanges();

    return View("View1");

}


return View("View2");

您還應(yīng)該考慮使此操作異步并調(diào)用.SaveChangesAsync()


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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