SQL-запрос Webmatrix/Razor — переменная Websecurity

Я пытаюсь написать запрос, чтобы показать все записи, принадлежащие текущему вошедшему в систему пользователю, но у меня возникают проблемы со вставкой переменной «userid» в строку?

@{
Layout = "~/_template1.cshtml";
var db = Database.Open("StayInFlorida");


var userid = WebSecurity.CurrentUserId;
var premierproperty = "SELECT PropertyName, PropertyID FROM PropertyInfo WHERE OwnerID='userid'";
}

<h1>Properties - Page coming soon</h1>

@userid

@foreach (var row in db.Query(premierproperty)){
@row.propertyname
} 

Есть идеи?


person Gavin5511    schedule 01.03.2013    source источник


Ответы (1)


Попробуйте так:

@{
    Layout = "~/_template1.cshtml";
    var db = Database.Open("StayInFlorida");
    var userid = WebSecurity.CurrentUserId;
    var premierproperty = "SELECT PropertyName, PropertyID FROM PropertyInfo WHERE OwnerID = @0";
}

<h1>Properties - Page coming soon</h1>

@userid

@foreach (var row in db.Query(premierproperty, userid))
{
    @row.propertyname
} 
person Darin Dimitrov    schedule 01.03.2013
comment
просто чтобы подтвердить, если бы я хотел запустить другой запрос на странице, я мог бы сделать то же самое, используя значение @1? какая разница в каком порядке они стоят? - person Gavin5511; 02.03.2013
comment
Вы можете использовать столько параметров, сколько хотите в одном запросе. Они должны быть пронумерованы @0, @1, @2, ... и значения должны передаваться в том же порядке в метод Query. - person Darin Dimitrov; 02.03.2013