首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候应该在TryGet中定义以“C#”开头的扩展呢?

什么时候应该在TryGet中定义以“C#”开头的扩展呢?
EN

Stack Overflow用户
提问于 2018-11-29 06:50:03
回答 1查看 50关注 0票数 0

我正在研究ASP.NET,我有两种方法来获取数据库中的项:

  1. 第一项:
代码语言:javascript
运行
复制
public Post Get(string postId)
    => !string.IsNullOrEmpty(postId) 
       ? _dbContext.Posts.SingleOrDefault(x => x.Id == postId) : null;

用法:

代码语言:javascript
运行
复制
var post = Get("someid");

if (post != null)
{
    // do stuff...
}
  1. 第二部分:
代码语言:javascript
运行
复制
public bool TryGetPost(string postId, out Post post)
{
    if (!string.IsNullOrEmpty(postId))
    {
        post = _dbContext.Posts.SingleOrDefault(x => x.Id == postId);

        return post != null;
    }

    post = null;
    return false;
}

用法:

代码语言:javascript
运行
复制
if (TryGetPost("someid", out Post post))
{
    // do stuff...
}

你能教我什么时候使用第一/秒吗?

还有比他们更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-29 07:12:42

正如接吻原则所说的那样,它应该很简单。假设您必须从控制器返回视图,则示例应该如下所示:

代码语言:javascript
运行
复制
[HttpGet]
public ActionResult GetItem(int postId)
{
  var post = _dbContext.Posts.FirstOrDefault(x => x.Id == postId);

  if (post != null)
  {
    return View(post);
  }

  return View();
}

这也有许多mods和良好的实践,但这将足以从数据库中获取数据并显示给View。

当您保存数据做数据库,您应该使用POST方法,如果您只得到一些使用GET。还可以使用PUT方法修改数据库中的现有数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53533339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档