这是我的代码:
app.py
from flask_graphql import GraphQLView
from app.infrastructure.graphql import schema
from app.infrastructure.api_resource import app
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
api_resource.py
import app.infrastructure.repository as repository
from flask import request, url_for
from flask_restplus import Api, Resource, fields
from sqlalchemy_pagination import paginate
from sqlalchemy_fulltext import FullTextSearch
app = repository.app
api = Api(app, version='0.1', title='xxxxx',
description='xxxxx')
...
Run Code Online (Sandbox Code Playgroud)
repository.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app.domain.model import Base
connection_string = 'xxxxxx'
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = connection_string
app.config['SQLALCHEMY_ECHO'] …Run Code Online (Sandbox Code Playgroud) 我得到了以下EF6映射
namespace Model
{
[Serializable]
[Table("PROVISION")]
public class Provision
{
[Key, Column("ID_PROVISION", Order = 1), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual long Id { get; set; }
[Column("ID_PROVISION_TYPE")]
public virtual int IdProvisionType { get; set; }
[ForeignKey("IdProvisionType")]
public virtual ProvisionType ProvisionType { get; set; }
}
public class ProvisionType
{
[Key, Column("ID_PROVISION_TYPE", Order = 1), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
Provision_ProvisionType_Target_Provision_ProvisionType_Source:引用约束的从属角色中的所有属性的类型必须与主体角色中的相应属性类型相同.实体"Provision"上的属性"Id"类型与引用约束"Provision_ProvisionType"中实体"ProvisionType"上的属性"Id"类型不匹配.
如您所见,外键和引用的主键是相同的类型.问题是它在EF4上运行良好,但是一旦我更新到EF6,我就开始收到这个错误,系统很庞大并且充满了同样的情况.
编辑:忘了提到它是一个.net 4.0项目
有谁知道解决方案?