我真的想在我的项目中使用EF,但如果我想在数据库中实现这一点,我在查找如何使用代码优先方法时遇到了一些麻烦:
import move from '../../libraries/fsMove.js';
export function create(req, res) {
var file = req.files.file;
console.log(file.name);
console.log(file.type);
console.log(file.path);
console.log(__dirname);
move(file.path, __dirname + '/../../uploads/worlds/' + file.originalFilename, function(err){
if (err) {
console.log(err);
handleError(res)(err);
return;
}
World.createAsync(req.body)
.then(responseWithResult(res, 201))
.catch(handleError(res));
});
}
// fsMove.js
// http://stackoverflow.com/questions/8579055/how-i-move-files-on-node-js/29105404#29105404
var fs = require('fs');
module.exports = function move (oldPath, newPath, callback) {
fs.rename(oldPath, newPath, function (err) {
if (err) {
if (err.code === 'EXDEV') {
copy();
} else {
callback(err);
}
return;
}
callback();
});
function copy () {
var readStream = fs.createReadStream(oldPath);
var writeStream = fs.createWriteStream(newPath);
readStream.on('error', callback);
writeStream.on('error', callback);
readStream.on('close', function () {
fs.unlink(oldPath, callback);
});
readStream.pipe(writeStream);
}
};
有人可以帮我解决我应该如何使用代码优先EF?
我不知道如何创建Posts
============================================================================
Id :int | Title :string | Author :string | Date : datetime| Content :string
============================================================================
Tags
=============
Name :string
=============
PostTags
===============================
Post_Id :int | Tag_Name :string
===============================
ReadBy
===============================
Post_Id :int | Reader_Name :string
===============================
表,因为它只有原始类型,我不知道如何为Tags
和PostTags
定义那些M2M映射。
我知道关系设计非常简单,因为它主要使用原始数据类型,而在其他情况下我会手动制作我的DAL,但我想先使用EF代码,因为我知道我会从中受益在将来向应用添加更多功能时。
非常感谢您的帮助!
答案 0 :(得分:4)
这将是我解决问题的方法:
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public DateTime Date { get; set; }
public string Content { get; set; }
public virtual List<Tag> Tags { get; set; }
public virtual List<Reader> Readers { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class Reader
{
public int Id { get; set; }
public int Name { get; set; }
public virtual List<Post> Posts { get; set; }
}