Получить метаданные элемента с помощью Entity Framework? - PullRequest
0 голосов
/ 21 февраля 2011

Я работаю с Sharepoint 2010.

Мне нужно знать дату создания / издания и автора / редактора элементов в списках моего ресурса, но я не нашел решения для сопоставления этих столбцов с Entity Framework.

Я пробовал такой код:

[Microsoft.SharePoint.Linq.ColumnAttribute(Name = "tp_author", Storage = "_author", ReadOnly = true, FieldType = "User")]
public SPUser Author
{ 
    get 
    {
        return this._author;
    }
    set
    {
        if (!value.Equals(this._author))
        {
            this.OnPropertyChanging("Author", this._author);
            this._author = value;
            this.OnPropertyChanged("Author");
        }
    }
}

Но с этим кодом Sharepoint выдаст мне эту ошибку:

Неверный тип передачи Microsoft.SharePoint.SPUser

Я также пытался использовать _author с другими типами, но это ничего не меняет.

Есть ли способ сделать это отображение?

1 Ответ

1 голос
/ 27 мая 2011

SPMetal генерирует следующий код для пользовательского поля

[Microsoft.SharePoint.Linq.ColumnAttribute(Name="AssignedTo", Storage="_assignedToId", FieldType="User", IsLookupId=true)]
public System.Nullable<int> AssignedToId {
    get {
        return this._assignedToId;
    }
    set {
        if ((value != this._assignedToId)) {
            this.OnPropertyChanging("AssignedToId", this._assignedToId);
            this._assignedToId = value;
            this.OnPropertyChanged("AssignedToId");
        }
    }
}

[Microsoft.SharePoint.Linq.ColumnAttribute(Name="AssignedTo", Storage="_assignedTo", ReadOnly=true, FieldType="User", IsLookupValue=true)]
public string AssignedTo {
    get {
        return this._assignedTo;
    }
    set {
        if ((value != this._assignedTo)) {
            this.OnPropertyChanging("AssignedTo", this._assignedTo);
            this._assignedTo = value;
            this.OnPropertyChanged("AssignedTo");
        }
    }
}
...