gpt4 book ai didi

asp.net-core-mvc - 'FromSql' 操作的结果中不存在所需的列

转载 作者:行者123 更新时间:2023-12-04 04:10:18 26 4
gpt4 key购买 nike

我刚刚开始使用 EF7 学习 MVC6。我有一个存储过程,我想返回模型中的一部分字段。如果我没有返回模型中的每个字段,我会得到“‘FromSql’操作的结果中不存在所需的列‘FirstName’”。

有没有办法让一些列不需要,这样我就可以只返回模型中的一部分字段?

模型:

public class LoginViewModel
{
[Key]
public int UserID { get; set; }

[Required]
[Display(Name = "Username")]
public string Username { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Protected ID")]
public string ProtectedID { get; set; }

public string FirstName { get; set; }
public string LastName { get; set; }
}

我的测试过程:
CREATE PROCEDURE [dbo].[aaa_TopXXUsersTest]
@NumToReturn int = 10
AS
BEGIN
SET NOCOUNT ON;
select top(@NumToReturn) UserID, LastName, Username,Password, ProtectedID from Users where Deleted = 0

END

最后,我的 Controller 代码:
public IActionResult Index()
{
var user = _context.Set<LoginViewModel>().FromSql("dbo.aaa_TopXXUsersTest @NumToReturn = {0}", 20);

return View(user);
}

如果我在我的存储过程中包含我模型的所有字段,调用工作正常,但我似乎不能只返回一个子集。有没有办法使某些字段不需要?

最佳答案

二手 [NotMapped]带有名字的属性。

The NotMappedattribute can be applied to properties of an entity class for which we do not want to create corresponding columns in the database.


public class LoginViewModel
{
[Key]
public int UserID { get; set; }

[Required]
[Display(Name = "Username")]
public string Username { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Protected ID")]
public string ProtectedID { get; set; }

[NotMapped]
public string FirstName { get; set; }

public string LastName { get; set; }
}

关于asp.net-core-mvc - 'FromSql' 操作的结果中不存在所需的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com