我需要获取列名,主键,外键和其他架构信息.这DataTable堂课似乎包含了所有这些.
下面是我到目前为止的当前代码.有了它,我可以检索除外键之外的所有信息.我期待它们被定义,DataTable.Constraints但它们不是.这是我目前的代码:
private static DataTable LoadSchemaInfo(string tableName, SqlConnection connection)
{
string cmdText = "SELECT * FROM [" + tableName + "] WHERE 1 = 0";
// Create a SqlDataAdapter to get the results as DataTable
var sqlDataAdapter = new SqlDataAdapter(cmdText, connection);
// Create a new DataTable
var dataTable = new DataTable(tableName);
// Fill the DataTable with the result of the SQL statement
sqlDataAdapter.FillSchema(dataTable, SchemaType.Source);
return dataTable;
}
Run Code Online (Sandbox Code Playgroud)
知道如何检索所有信息或如何获取FK(最好不使用纯SQL语法,因为我会缺少一些编译时检查)?
例如,我有一个与地址相关的联系人表.要与数据库通信,我使用WCF数据服务.我有一个表单,其中有联系信息,上面有可能的地址列表.现在我创建'要插入的地址'列表并使用(上下文是实体数据上下文)插入联系人:
context.AddToContact(contact);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
之后,我可以获取插入的contact.ID并将其作为父ID添加到地址列表中的所有地址:
cacheAddressList.ForEach(a =>
{
address.ContactID = contact.ID;
context.AddToAddress(address);
}
);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
所以我必须做2次插入.
我知道在实体框架中我可以将子项添加到父项,如果我有它们之间的导航属性.在我的情况下,我有导航,但这样的代码不起作用(联系还没有保存..):
context.AddToContact(contact);
cacheAddressList.ForEach(a =>
{
address.Contact = contact;
}
);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
是否可以在一次交易中插入所有孩子和父母?因为如果可能的话 - 我不必在父插入后创建所有要添加的子列表.
c# foreign-key-relationship entity-framework-4 wcf-data-services
嘿家伙(可能是女孩).我正在为一家我工作的公司在mysql中建立一个庞大的数据库,而且我正在坚持你可能帮助我的事情.
我的问题很简单:我怎么知道有很多外键?
我有8个表描述以下数据:
第一关系
(city => state => country)
第二关系
(角色=>部门=>部门)
第三关系
(公司=>法人实体)
最后,我有一个名为employee的第九个表,该表具有前面描述的所有表的外键引用.
(主要)empresa_entidade_juridica_cidade_cidade_id(empresa表)
(fK)货物表
这个模型的主要概念是.
法人实体必须放在country => state => city
我有一家公司的注册
公司应该对法人实体表(拥有地址,电话,州ID,城市ID,国家ID,邮政编码等)进行引用.
我有一个角色的注册
最后,在上图中描述了名为employee的主表.
我希望你们有事我!
拜拜.
我的rails应用程序中有一个User模型,如下所示
class User < ActiveRecord::Base
has_many :parts, dependent: :destroy
has_many :assemblies, dependent: :destroy
has_many :packages, dependent: :destroy
has_many :manufacturers, dependent: :destroy
//more code here
end
Run Code Online (Sandbox Code Playgroud)
我也有dependent: :restrict其他一些模特.
当我运行以下内容时rails console,我得到一个ArgumentError:
u = User.first
u.parts
Run Code Online (Sandbox Code Playgroud)
调用u.parts给出以下错误消息:
ArgumentError: Unknown key: dependent
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/hash/keys.rb:44:in `block in assert_valid_keys'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/hash/keys.rb:43:in `each_key'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/hash/keys.rb:43:in `assert_valid_keys'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations/builder/association.rb:33:in `validate_options'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations/builder/association.rb:24:in `build'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations/builder/collection_association.rb:23:in `build'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/autosave_association.rb:139:in `build'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations/builder/has_and_belongs_to_many.rb:8:in `build'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations/builder/collection_association.rb:13:in `build'
from /home/david/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/associations.rb:1600:in `has_and_belongs_to_many'
from /home/david/code/PartSorter/app/models/part.rb:5:in `<class:Part>'
from …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails associations foreign-key-relationship ruby-on-rails-3
我创建了一个WPF应用程序,Entity framework 4.0.当我试图在PhoneNumber表中插入记录时,它成功地插入了第一条记录.但是,当我遍历一些List并尝试将另一个项插入PhoneNumber表时,它插入记录但显示错误为:
InvalidOperationException由用户代码处理:对数据库的更改已成功提交,但更新对象上下文时发生错误.ObjectContext可能处于不一致状态.内部异常消息:发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致.
.cs文件中的代码:
protected void InsertContact(List<PhoneNumbersList> phoneList,otherparameters here)
{
Contact contact = new Contact();
PhoneNumber phnumber = new PhoneNumber();
//INSERT into Contacts Table
contact.PrefixTitleID = cfnm.PrefixTitleID;// cfnm.Title;
contact.FirstName = cfnm.FirstName;
contact.MiddleName = cfnm.MiddleName;
contact.LastName = cfnm.LastName;
contact.Website = webpageaddress;
contact.SuffixID = cfnm.SuffixID;
contact.Gender = gender;
contact.IMAddress = imaddress;
db.Contacts.Add(contact);
db.SaveChanges();
int contactid=contact.ContactID;
if (contactid > 0)
{
int phid = 0;
//INSERT into PhoneNumber Table
foreach (var ph in phoneList)
{
phnumber.PhoneTypeID …Run Code Online (Sandbox Code Playgroud) .net entity-framework invalidoperationexception foreign-key-relationship
我最近刚使用flask和sql-alchemy进入web开发.一切都工作正常,直到我不得不使用外键访问值.我有这样的模特:
class User(db.Model):
_tablename='user'
id=db.Column(db.Integer, primary_key=True)
name=db.Column(db.String)
email=db.Column(db.String)
class Post(db.Model):
_tablename='post'
id=db.Column(db.Integer, primary_key=True)
title=db.Column(db.String)
user=db.Column(db.Integer, db.ForeignKey('user.id'))
Run Code Online (Sandbox Code Playgroud)
我想在网页上显示所有帖子的列表,在html文件中有这样的内容:
{% for entry in entries %}
<tr>
<td> {{ entry.id }} </td>
<td> {{ entry.title }} </td>
<td> {{ entry.user_name }} </td>
<td> {{ entry.user_email }} </td>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何使用user.id外键从用户表访问用户和电子邮件.我试过了
posts = Post.query.all()
for post in posts:
post.user_name = User.query.filter_by(id=post.id).first()
return render_template('post.html', entries=posts)
Run Code Online (Sandbox Code Playgroud)
但是,然后不仅仅返回名称和电子邮件,如帖子中的标题,它返回的内容类似于(u'User A',)和(u'test@test.com',).我想不出任何其他方式.任何人都可以帮助我吗?
python sqlite foreign-key-relationship flask flask-sqlalchemy
我有两个班:Artist和Instrument.每个人都Artist可以玩一个或多个Instrument.并且每个Instrument都可以分配给一个或多个Artists.所以,我已经设置了以下类:
Artist.php
public function instruments() {
return $this->belongsToMany('App\Models\Instrument');
}
Run Code Online (Sandbox Code Playgroud)
Instrument.php
public function artists() {
return $this->belongsToMany('\App\Models\Artist');
}
Run Code Online (Sandbox Code Playgroud)
然后我有三个数据库表:
artists: id, firstname, lastname, (timestamps)
instruments: id, name
artist_instrument: id, artist_id, instrument_id
Run Code Online (Sandbox Code Playgroud)
我能够成功找回一位艺术家及其相关乐器,如下所示:
ArtistController.php
$artist = Artist::find($artist_id);
$instruments = $artist->instruments()->get();
return \View::make('artists')->with('artists', $artists)->with('instruments', $instruments);
Run Code Online (Sandbox Code Playgroud)
我有3个问题:
在我看来,我可以输出$artist像:
{{ $artist->firstname }}
Run Code Online (Sandbox Code Playgroud)
我可以迭代$instruments:
@foreach ($instruments as $instrument)
<h2>{{ $instrument->name }}</h2>
@endforeach
Run Code Online (Sandbox Code Playgroud)
但是有可能迭代$artist(我知道只有一个 - 见#2)并且每次$artist …
通过ForeignKey我有django的模型有很多对:
class A(m.Model):
id = m.AutoField(primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
def __str__(self):
return self.name
class B(m.Model):
id = m.AutoField(primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
a = m.ForeignKey(A)
def __str__(self):
return self.name
class C(m.Model):
id = m.IntegerField(null=False, unique=True, primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
bs = m.ManyToManyField(B, through='D')
def __str__(self):
return '%d, %s, (%s), (%s)' % (
self.id,
self.name,
', '.join(b.name for b in self.bs.all()),
', '.join(b.a.name for b in self.bs.all()))
)
class D(m.Model):
c = m.ForeignKey(C)
b = m.ForeignKey(B) …Run Code Online (Sandbox Code Playgroud) python django many-to-many foreign-key-relationship django-tables2
我有两张表如下:
CREATE TABLE pets(
id int NOT NULL AUTO_INCREMENT,
user_id int,
any_data varchar(255),
foreign key (user_id) references users(id),
primary key(`id`)
);
CREATE TABLE users(
id int NOT NULL AUTO_INCREMENT,
pet_id int,
any_data varchar(255),
foreign key (pet_id) references pets(id),
primary key(`id`)
);
Run Code Online (Sandbox Code Playgroud)
我的模型有下一个:
用户:
public function relatedPet() {
return $this->hasOne("Pet", "pet_id");
}
Run Code Online (Sandbox Code Playgroud)
宠物:
public function relatedUser() {
return $this->belongsTo("User", "user_id ");
}
Run Code Online (Sandbox Code Playgroud)
我想保存用户并与现有宠物有关,但我不知道该怎么做:
$user= new User(array("any_data"=>"Hi, this is a test"));
$pet = Pet::find(1);
Run Code Online (Sandbox Code Playgroud)
如何创建两个objets之间的关系?
我正在序列化产品模型及其评论.这是我的简单代码:
class ProductSerializer(serializers.HyperlinkedModelSerializer):
comment_set = CommentSerializer(many=True, read_only=True)
class Meta:
model = Product
fields = [
'title',
'comment_set'
]
class CommentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Comment
fields = [
'text',
]
class Comment(models.Model):
product = models.ForeignKey(Product, null=True, blank=True, db_index=True)
class Product(models.Model):
title = models.CharField(max_length=50)
...
Run Code Online (Sandbox Code Playgroud)
问题:如果产品有很多评论.例如,500条评论.所有500个都被序列化了.
如何将结果限制为我自己选择的一些,如100条评论?
我在发布之前做了一些研究,但只发现了有关过滤的问题.
谢谢.
django serialization foreign-keys foreign-key-relationship django-rest-framework
c# ×2
django ×2
eloquent ×2
laravel ×2
python ×2
.net ×1
associations ×1
datatable ×1
flask ×1
foreign-keys ×1
many-to-many ×1
mysql ×1
one-to-one ×1
orm ×1
php ×1
ruby ×1
schema ×1
sql-server ×1
sqlite ×1