我有两个模型与一个外键,User和Farm连接。ADO.NET MVC查询外键
我希望能够选择一个用户使用查询和类型:
@Model.Farm.FarmId
在我看来。这不会工作,因为农场道具为空。
这是我的两个型号:
模型1:
public class User
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string PasswordSalt { get; set; }
public int Money { get; set; }
public int FarmId { get; set; }
[ForeignKey("FarmId")]
public virtual Farm Farm { get; set; }
}
模型2:
public class Farm
{
public Farm()
{
User = new HashSet<User>();
}
[Key]
public int FarmId { get; set; }
public DateTime Created { get; set; }
public int Age { get; set; }
public virtual ICollection<User> User { get; set; }
}
获得用户查询:
public User GetUser(string userName)
{
string sql = "SELECT * FROM Users WHERE UserName = @UserName";
User user = null;
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
try
{
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddWithValue("@userName", userName);
connection.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
user = new User
{
UserId = (int)rdr["UserId"],
UserName = (string)rdr["UserName"],
Password = (string)rdr["Password"],
PasswordSalt = (string)rdr["PasswordSalt"],
Money = (int)rdr["Money"],
FarmId = (int)rdr["FarmId"],
Farm ??????
};
}
if (rdr != null)
rdr.Close();
}
catch
{
}
}
return user;
}
我的猜测是我必须做一些加盟的,对不对?我仍然是一个查询新手,所以请耐心等待我:)
我不想使用LINQ!
谢谢!
你试图使用实体框架或里面的东西相似...没有实际使用它? – 2014-10-26 14:34:23
对不起,你的意思是?我用CodeFirst使用实体框架创建了我的数据库。现在即时尝试使用查询来访问这个数据库中的数据,而不是LINQ。 – Reft 2014-10-26 14:36:19
使用Linq [。](http://stackoverflow.com/questions/26574049/ado-net-mvc-query-foreign-key?noredirect=1#comment41765855_26574049) – 2014-10-26 14:36:57