标签: foreign-key-relationship

使用C#在LINQ中使用外键导航属性查询表

我有以下LINQ to SQL EF类:

LINQtoSQL EF类图

SessionId上的外键关系(主表WebinarSession).

我想通过使用lambdas来选择涉及特定产品系列的所有WebinarSession行.

我把为例此代码,当然不工作(它将与OWRK 的inseatd 在哪里,但因为我多张实例相匹配的条件是不适用):

SessionId = _webinarRecordingsDB.WebinarSessions.Where(m => m.SessionId == m.SessionSubjects.Where(n => n.ProductLineName == productLine).SessionId);
Run Code Online (Sandbox Code Playgroud)

_webinarRecordingsDB是EF对象映射的SQL数据库.

有人知道如何完成这项任务吗?谢谢

c# lambda foreign-key-relationship linq-to-sql

0
推荐指数
1
解决办法
8763
查看次数

如何在SQLAlchemy中以声明方式设置具有递归外键和关系的表?

假设我有一个表"节点",我存储一棵树.每个节点都有一个主键id和一个parent_id列.当然,我想访问每个节点实例的父属性,即关系.有人可能会尝试:

import sqlalchemy, sqlalchemy.orm, sqlalchemy.ext.declarative
engine = sqlalchemy.create_engine('sqlite:///PATHTOMYDATABASE', echo=True)
Base = sqlalchemy.ext.declarative.declarative_base()
class Node(Base):
    __tablename__ = "nodes"
    id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True) 
    parent_id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("nodes.id"))
    parent = sqlalchemy.orm.relationship("Node", backref=sqlalchemy.orm.backref("childs"))
Base.metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我收到一个错误:

sqlalchemy.exc.InvalidRequestError: Table 'nodes' is already defined for this MetaData instance. Specify 'useexisting=True' to redefine options and columns on an existing Table object.

我不明白我可以在什么时候设置这个选项'useexisting=True'.这是正确的方法吗?

编辑:事实上,错误来自原始脚本的另一部分.如果用临时数据库替换数据库路径:memory:,它可以正常工作.感谢TokenMacGuy.

因此,上面的例子可以被视为一个工作示例.

python sqlalchemy foreign-keys foreign-key-relationship

0
推荐指数
1
解决办法
4652
查看次数

具有两个相关外键的数据库表,可能会获取错误数据

我正在设计一个数据库,我的表如下

  • 一个公司可以有多个部门,一个部门属于一个公司
  • 一个公司可以有多个员工,一个员工属于一个公司
  • 一个部门可以有多名员工,一名员工属于一个部门
公司(
      ID,
      姓名,
)

部门(
      ID,
      标题,
      公司 ID(FK_部门_公司)
      UNIQUE(职位、公司 ID)
)

员工(
      ID,
      名字,
      L 名称,
      公司ID,(FK_Employee_Company)
      部门 ID (FK_Employee_Department)
)

所以我发现有可能将错误的数据插入到Employee表中

这是示例值

company  (
       25,Spar Pvt LTD, Sweden, 12345678.
       26,Mr.Wheel Pvt Ltd, Germany, 123456789)

Department(
       101, Manager,25
       102, Front Desk,25
       103, Host,26)

Employee( 81,25,103,....) 
Run Code Online (Sandbox Code Playgroud)

这里DepartmentID 103属于CompanyID 26,但我仍然可以插入,那么有没有办法解决这个问题(sqlserver),或者我必须改变设计,请给我一些建议和想法。

问候,

sql database database-design foreign-key-relationship

0
推荐指数
1
解决办法
165
查看次数

如何仅删除父表中的行,该表由子表中的Foregin键引用

我想从父表中删除行/元组,但由于它在其子表中具有FOREIGN KEY引用,因此抛出了错误消息。

但是,就我而言,我只想从父表中删除记录,并在子表中维护数据

有可能实现这一目标吗?

我知道的用法ON DELETE CASCADE,但是我想知道我描述的secenario是否有解决方案?

sql foreign-keys foreign-key-relationship

0
推荐指数
1
解决办法
8186
查看次数

在django模板中使用相关字段名称

我有两个模型如下:

class A(models.Model):
    a = models.BooleanField(default=False)
    q = models.BooleanField(default=False)

class B(models.Model):
    c = models.Foreignkey('A', related_name='bb')
    d = models.BooleanField(default=False)
    e = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

class Myview(ListView):

    model = A
    template_name = 'admin/layer.html'

    def get_context_data(self, *args, **kwargs):
        context = super(ListView, self).get_context_data(*args, **kwargs)
        context['mylist'] = A.objects.filter(bb__e=False)
        return context
Run Code Online (Sandbox Code Playgroud)

一切都工作正常,除了在我的模板'admin/layer.html'我尝试这个:

{% for list in mylist %}
    {{ list.bb.d }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何价值{{ list.bb.d }}我可以在django模板中以这种方式使用相关的字段名称吗?

django django-templates foreign-key-relationship

0
推荐指数
1
解决办法
1107
查看次数