У меня есть две модели, связанные с внешним ключом, пользователем и фермой.ADO.NET MVC Query external key
Я хочу, чтобы иметь возможность выбрать пользователя с запросом и типа:
@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; }
}
GET запрос пользователя:
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!
Спасибо!
Вы пытаетесь использовать Entity Framework или что-то похоже ... без его использования? –
Извините, что вы имеете в виду? Я создал свою базу данных с помощью codefirst, используя Entity Framework. Теперь я пытаюсь получить доступ к данным из этой базы данных с помощью запросов, а не linq. – Reft
Используйте Linq [.] (Http://stackoverflow.com/questions/26574049/ado-net-mvc-query-foreign-key?noredirect=1#comment41765855_26574049) –