[英]Use of an entity as a parameter in a Generic method
使用MVC,當我注冊時,我希望能夠在單獨的表(一個帳戶和一個用戶)中創建幾個記錄。
我可以為每個創建設置不同的方法,但是我喜歡學習,我認為我會嘗試僅使用一種方法來使用泛型。 這可能是不合適的,所以請指出是否不合適。
因此register方法中包含以下代碼:
sp_Account spAccount = new sp_Account();
// stripped out code assignations
Create(spAccount);
sp_User spUser = new sp_User();
// stripped out code assignations
Create(spUser);
在谷歌搜索了一段時間之后,我(正確或錯誤地)將Create方法設置如下:
protected ActionResult Create<T>(T modelOf)
{
if (ModelState.IsValid)
{
Type t = modelOf.GetType();
switch(t.Name)
{
case "sp_Account":
sp_Account spAccount = new sp_Account();
spAccount = ??????????;
db.sp_Account.Add(spAccount );
return View(spAccount);
break;
case "sp_User":
sp_User spUser = new sp_User();
spUser = ??????????;
db.sp_User.Add(spUser);
return View(spUser);
break;
}
db.SaveChanges();
}
return View(**********);
}
請回答2個問題:
- ?????????? -如何將通用modelOf分配給特定實體
- **********-如何返回通用modelOf作為View的模型
對於這個新問題,如果這是一個愚蠢的問題,請提前道歉。 在此先感謝您的幫助。
更新我想向我擁有的任何實體打開此“創建”方法。
經過進一步的搜索,谷歌搜索最終設法加入了所有信息以制定解決方案。
我正在使用的Create方法現在看起來像這樣:
protected void Create<TEntity>(TEntity modelOf) where TEntity : class, new()
{
if (ModelState.IsValid)
{
db.Set<TEntity>().Add(modelOf);
db.SaveChanges();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.