保存mongodb集合不支持指定的方法

时间:2014-07-31 17:06:13

标签: c# asp.net-mvc mongodb

我正在使用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; 不支持指定的方法

1 个答案:

答案 0 :(得分:0)

MongoGridFSFileInfo不是POCO类。我的意思是它有许多属性,要么不能持久存在,要么不应该存在。

您实际需要坚持获取文档的唯一方法是文件的唯一标识符。您可能还希望保留其他一些元数据,但只需要标识符。