我正在使用ASP MVC + Mongodb应用程序,因此我希望通过List将文件保存在特定文档中。我正在使用GridFs上传方法,它返回一个 MongoGridFSFileInfo (模型中List的类型),所以我得到了对返回的对象的引用并将它添加到List中 - 所以一切似乎都很好 - 但是当我尝试保存集合中的更改时,我得到此异常“不支持指定的方法”,并且文件将不会保存到文档中。
这是我的模特
public class Document
{
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<MongoGridFSFileInfo> FsFileInfos = new List<MongoGridFSFileInfo>();
public Document()
{
}
}
以下是方法,其中1)将文件添加到文档集合列表中2)尝试保存集合中的更改。
[HttpPost]
public ActionResult PrepareToAttach(string id, string description, HttpPostedFileBase raw_file)
{
Document doc = Context.FindById(id);
var options = new MongoGridFSCreateOptions
{
ContentType = raw_file.ContentType
};
var mongoFileInfo = Context._db.GridFS.Upload(raw_file.InputStream, raw_file.FileName,options);
doc.FsFileInfos.Add(mongoFileInfo);
Context.Documents.Save(doc);
return RedirectToAction("Index", "Document");
}
异常显示在 Context.Documents.Save(doc); - &gt; 不支持指定的方法
答案 0 :(得分:0)
MongoGridFSFileInfo不是POCO类。我的意思是它有许多属性,要么不能持久存在,要么不应该存在。
您实际需要坚持获取文档的唯一方法是文件的唯一标识符。您可能还希望保留其他一些元数据,但只需要标识符。