我正在练习MVC 5,在我的应用程序中,我有一个控制器方法,应该更新给定用户配置文件的地址信息.
我通过使用上下文对象访问数据库来做到这一点,我首先想到的是将数据库行复制到对象,进行更改,然后使用该AddOrUpdate()方法将其放回.但是,我只看到一种Add()方法.
所以我做了以下事情:
public ActionResult EditBillingDetails(EditBillingDetailsViewModel model)
{
if (ModelState.IsValid)
{
string id = User.Identity.GetUserId();
ApplicationDbContext db = new ApplicationDbContext();
db.Users.Single(u => u.Id == id).FirstName = model.FirstName;
db.Users.Single(u => u.Id == id).LastName = model.LastName;
db.Users.Single(u => u.Id == id).Email = model.Email;
db.Users.Single(u => u.Id == id).Address = model.Address;
db.Users.Single(u => u.Id == id).City = model.City;
db.Users.Single(u => u.Id == id).ZIP = model.ZIP;
db.Users.Single(u => u.Id == id).Country = model.Country;
db.SaveChanges();
return RedirectToAction("Manage", new { Message …Run Code Online (Sandbox Code Playgroud) 我正在学习PowerShell,并且阅读的大量文章强烈反对使用写入主机来告诉我这是“错误的做法”,并且几乎总是可以用另一种方式显示输出。
因此,我接受了建议并尝试避免使用写入主机。我发现的一个建议是改用写输出。据我了解,这会将所有内容放入管道中,并且输出在脚本(?)的末尾执行。
但是,我在输出所需内容时遇到问题。此示例演示了该问题:
$properties = @{'OSBuild'="910ef01.2.8779";
'OSVersion'="CustomOS 3";
'BIOSSerial'="A5FT-XT2H-5A4B-X9NM"}
$object = New-Object –TypeName PSObject –Prop $properties
Write-output $object
$properties = @{'Site'="SQL site";
'Server'="SQL Server";
'Database'="SQL Database"}
$object = New-Object –TypeName PSObject –Prop $properties
Write-Output $object
Run Code Online (Sandbox Code Playgroud)
这样,我可以很好地输出显示OS数据的第一个对象,但是永远不会显示包含SQL数据的第二个对象。我试过重命名变量名和其他很多东西,但是没有运气。
在对这个问题进行故障排除时,我发现了类似的问题,并提出了一些建议,就是只用写主机代替写输出。这让我很困惑。为什么有些人强烈劝阻写主机,而其他人却鼓励写主机?
以及如何准确地以时尚的方式输出这两个对象?我不完全了解写输出的流水线机制。